数据分析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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值