pandas快速入门2

ipythonnotebook与ipython相比有优势如下:

1.一个编辑框可以轻松编写多行程序
2.如果画图图片可以直接显示在这个网页上

处理丢失数据:

预先准备

#先导入包
%matplotlib inline 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 

构造一个二维的DataFrame

#构造一个二维的DataFrame
dates=pd.date_range('20160301',periods=6)
df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('abcd'))
df

在这里插入图片描述

重新索引,

新加入一列,新加的一列值为NaN

df = df.reindex(index=dates[0:4], columns=list(df.columns) + ['e'])
#重新索引,新加的一列值为NaN
df

在这里插入图片描述
#给新插入列部分位置赋值,0-3行e列的值为1

df.loc[dates[0:3], 'e'] = 1#给新插入列部分位置赋值
df

在这里插入图片描述

丢弃包含空数据的行

df1=df.dropna()#丢弃包含空数据的行
df1

这里当时出现了个问题
在这里插入图片描述
后来得大神指点
在这里插入图片描述
后来就丢掉了在这里插入图片描述

填充丢失的数据

df2=df.fillna(value=5)#替换包含空数据的行
df2

在这里插入图片描述

判断一个数据集里面是否包含有空数据

pd.isna(df)#判断是否有NaN

在这里插入图片描述

数据运算

算平均值(空数据不参与运算)

df.mean()#按列取平均值,NaN不参与运算 

在这里插入图片描述

扫描二维码关注公众号,回复: 11590191 查看本文章

累加值

df.apply(np.cumsum)#每一行累加到下一行

在这里插入图片描述

把一个列作为参数交给函数处理

df.apply(lambda x: x.max() - x.min())#每一列的最大值减去其最小值

在这里插入图片描述

直方图化

产生10个由0-7之间随机数构成的series数据结构

s = pd.Series(np.random.randint(0, 7, size=10))#创建一个从0-7之间随机数的个数为10序列
s

在这里插入图片描述
各个数字产生了多少个

s.value_counts()#可以看到s中每个数字产生了多少个

在这里插入图片描述

数据合并

sql合并

left = pd.DataFrame({'key': ['foo1', 'foo2','foo3'], 'lval': [1, 2,3]})
right = pd.DataFrame({'key': ['foo1', 'foo2','foo3'], 'rval': [4, 5,6]})
left

在这里插入图片描述

right

在这里插入图片描述

pd.merge(left, right, on='key')  #通过一样的key关联在一起

在这里插入图片描述

数据分组统计

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
   ....:                          'foo', 'bar', 'foo', 'foo'],
   ....:                    'B': ['one', 'one', 'two', 'three',
   ....:                          'two', 'two', 'one', 'three'],
   ....:                    'C': np.random.randn(8),
   ....:                    'D': np.random.randn(8)})
df

在这里插入图片描述
通过A来分组,并将sum()功能应用于结果组

df.groupby('A').sum()#根据A里的fool和bar来分类,把fool的值都累加

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_41901394/article/details/108012638