pandas的常用数据类型
1.
Series
一维,带标签数组
2.
DataFrame
二维,
Series
容器
pandas之DataFrame
对于这一组电影数据,如果我们想rating,runtime的分布情况,应该如何呈现数据?
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/方正粗黑宋简体.ttf")
file_path = "IMDB-Movie-Data.csv"
df = pd.read_csv(file_path)
#rating,runtime分布情况
#选择图形,直方图
#准备数据
runtime_data = df["Rating"].values
max_runtime = runtime_data.max()
min_runtime = runtime_data.min()
print(min_runtime)
#计算组数
print(max_runtime-min_runtime)
num_bin = int((max_runtime-min_runtime)//0.5)
#设置图形的大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(runtime_data,num_bin)
_x = [min_runtime]
i = min_runtime
while i<=max_runtime+0.5:
i = i+0.5
_x.append(i)
plt.xticks(_x)
plt.show()
pandas之字符串方法
缺失数据的处理
对于NaN的数据,在numpy中我们是如何处理的?
在pandas中我们处理起来非常容易
判断数据是否为NaN:pd.isnull(df),pd.notnull(df)
处理方式1:删除NaN所在的行列dropna (axis=0, how='any', inplace=False)
处理方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)
处理为0的数据:t[t==0]=np.nan
当然并不是每次为0的数据都需要处理
计算平均值等情况,nan是不参与计算的,但是0会
import pandas as pd
t1 = pd.Series([1,2,354,523,2],index=list('abcde'))
print(t1)
temp_dict = {"NAME":"DING","AGE":18,"ADRESS":"HANGZHOU"}
t2 = pd.Series(temp_dict)
print(t2)
print(t1.where(t1>10))
print(t1.mask(t1>10))
import pandas as pd
df = pd.read_csv("./dogNames2.csv")
# print(df.head())
# print(df.info())
#dataFrame的排序方法
df = df.sort_values(by="Count_AnimalName",ascending=False)
#pandas取行或者列的注意点:
# - 方括号写数组,表示取行,对行进行操作
# - 写字符串,表示的去列索引,对列进行操作
print(df.head(5))
print(df[:5])
print(df[:5]["Row_Labels"])
print(df[(df["Count_AnimalName"]>700) & (df["Row_Labels"].str.len()>4)])
#下载pymongo读取外部数据
from pymongo import MongoClient
import pandas as pd
client = MongoClient()
collection = client["douban"]["tv1"]
data = list(collection.find())
print(data)
t1 = data[0]
t1 = pd.Series(t1)
print(t1)