Python Pandas常用操作(持续更新)
因平时处理数据使用pandas较多,但是在一段时间不用后就忘记了,所以借用该文章进行整理汇总保存,以供后续查询使用。因仅是为了整理,文中会有部分转载内容,如有侵权,请联系删除。
常用方法
1. 排序
df.sort_values("xxx",inplace=True)
xxx是需要排序的字段名称,inplace为True表示在原表中修改,否则只在返回值中修改
2. DataFrame随机取值
df.sample(n=None, frac=None, replace=False, weights=None,
random_state=None, axis=None)[source]
n: 返回的数据量
frac: 返回的数据量占比,与n不能同时使用
replace: 是否允许重复采样
weight: 权重,输入一个Series,表示行的权重
random_state: 随机数发生器种子
axis: 0表示按行取,1表示按列取
3. Python Pandas 常用统计数据方法汇总(求和,计数,均值,中位数,分位数,最大/最小,方差,标准差等)
此部分直接转载一位博主的内容,原博文请点击链接
关于如何求协方差,详见链接
apply()函数的使用
DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds
apply()函数将传入的DataFrame或Series转为列表块,传入函数func中,并将返回值转化为DataFrame或Series。
当axis=0时,apply()函数按列对传入数据进行切片;反之,按行进行切片
建立一个简单的df表
x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
df = pd.DataFrame([x,y,z], columns=list('xyz'))
df
取所有元素的平方
def get_square(x):
return x**2
df.apply(get_square)
取所有列元素的和
def get_square(x):
return x[0]+x[1]+x[2]
df.apply(get_square, axis=0)
从以上两个例子中可以发现,apply()并不只是传入列表元素,而是在尝试传入列表元素失败后再次传入单个元素数据,因为list类型的数据无法直接完成取平方的操作。
将DataFrame中的列表元素分裂成多列
x = [[1,2,3]]
y = [[4,5,6]]
z = [[7,8,9]]
df = pd.DataFrame([x,y,z],columns=['x'])
df
先直接上解决代码
df = df.xx.apply(lambda x:pd.Series(x))
df.columns=['x','y','z']
df
原理是,将三个列表作为元素传入lambda函数中,将列表转为Series,再整合为DataFrame,最后更新下字段名称。