0
点赞
收藏
分享

微信扫一扫

数据分析day4之pandas

pandas的常用数据类型

1. Series 一维,带标签数组

2. DataFrame 二维, Series 容器

 pandasDataFrame

 对于这一组电影数据,如果我们想ratingruntime的分布情况,应该如何呈现数据?

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中我们处理起来非常容易

判断数据是否为NaNpd.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)

举报

相关推荐

0 条评论