码迷,mamicode.com
首页 > 其他好文 > 详细

dataframe常用操作

时间:2019-10-27 12:52:45      阅读:1146      评论:0      收藏:0      [点我收藏+]

标签:gitbook   height   tps   code   类型   图片   原来   scale   nbsp   

一、创建、取某列某行、删除某列

import pandas as pd
lst=[2,3,5] #表示df的一行
df=pd.DataFrame(data=[lst,lst],columns=[col1,col2,col3]) #从列表生成DF
df=pd.DataFrame(data={col1:[2]*2,col2:[3]*2,col3:[5]*2})#字典生成DF

df[[‘col1‘,‘col2‘]]#可以取出对第一、二列的数据
df[2:][
[‘col1‘,‘col2‘]] #可以取出第2行到最后一行的第1、2列的数据

df.drop(‘col1‘,axis=1)#删除第1列
df.drop([‘col1‘,‘col2‘,axis=1])

二、对一列或者多列作运算

1. 利用map对一列作运算

df[col] = df[col1].map(lambda x: x**2)  #生成一列,是第1列的平方

2.利用apply对一列或多列作运算

df.index  = pd.date_range(20190101,periods=5) #将原来的index改成以日期为index
df[col] = df.apply(lambda x:x[col1]*x[col2], axis=1) #对‘col‘列改写成‘col1‘列的对应行乘以‘col2‘列的对应行

 三、求滑动平均

df[MA] = df[col].rolling(window=3, center=False).mean() 

四、对列作向上或向下的平移变换

df = pd.DataFrame({id:[1,1,1,2,2,3],value:[1,2,3,4,5,6]})
df[value_shift] = df.groupby(id)[value].shift(1) #按id列分组,对value列进行平移变换,即都向下移动1行
df[value_shift_1] = df.groupby(id)[value].shift(-1) #按id列分组,对value列进行平移变换,即都向上移动1行

技术图片

五、对列作标准化处理:

from sklearn import preprocessing
df = pd.DataFrame({id:[1,1,1,2,2,3],value1:[1,2,3,4,5,6],value2:[1,3,4,3,7,2]})
value=df[[value1,value2]]
value_T=value.transpose() #value_T是array类型
scaler=preprocessing.StandardScaler().fit(value_T) #scaler是对行数据作标准化,所以对df的列数据应该将其转置
value_T_scale = scaler.transform(value_T)
value_scale = value_T_scale.transpose()

#有时需要用到np.array的reshape:
y=df[[value]]    #y.shape=(6,1)
y=y.reshape(1,-1)  #y.shape=(1,6)
y=y.reshape(-1,1)  #y.shape=(6,1)
y=np.repeat(0,len(y)) #生成零矩阵

 六、对某列赋值

df = pd.DataFrame({id:[1,1,1,2,2,3],value:[1,2,3,4,5,6]})
value=[11,22,33]
df.loc[df.index[0:3],value]=value
df.loc[df.index[0:3], value0]=value

技术图片

七、 对list中多个重复的字符作频数统计

lst=[a,a,a,b,c,c,b,e,f,a,a,c]
cnt = pd.Series(lst).value_counts()

技术图片

 

 

 

参考:

 

后续再补充。

dataframe常用操作

标签:gitbook   height   tps   code   类型   图片   原来   scale   nbsp   

原文地址:https://www.cnblogs.com/pandas-blue/p/11634984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!