pandas最常用的操作

2019-12-16  本文已影响0人  不分享的知识毫无意义

1.对列进行重命名

两种方法:

2.根据列的值筛选数据

df[df['c1']==1 & df['c2']==1]

3.字符串转为日期

有一个最好用的函数,pd['字段名'].to_datetime()直接转换为日期格式,但是使用这个函数的前提是你的字段是一个日期格式的字符串。
这个转换的好处是,可以直接用.dt属性了,里边包装了很多函数,比如:获取年份,月份,日期,小时,甚至今天是周几等等。
然后还可以直接两列相减,转化为你需要的时间刻度,比如两个事件相隔几秒,几分钟,几小时。
注意点是,to_datetime()可以设置日期的格式,怎么设置的话,参考下面这个例子,其他怎么设置以此类推吧。

format ='%Y-%m-%d'
format = '%Y-%m-%d %H:%M:%S'

这里需要注意,我们都知道python字符串的日期函数strftime和strptime,当你转换为dt以后你就可以使用这两个函数进行自由的字符串和日期格式转换,但是前置任务一定是转换为datetime类型。

4.删除列或者行的数据

有两种方案,del和drop

df.drop([0,1])可以,但是df.drop(['0','1'])不行

5.选择某行某列的数据

这个不是按行或者按列选取数据,而是选取某行某列的具体数据。本来有三个方法,后来ix这个不让用了,省事了。用loc和iloc就可以。

data = [[1, 2, 3], [4, 5, 6]]
index = ['a', 'b']
column = ['left', 'center', 'right']
table = pd.DataFrame(data=data, index=index, columns=column)
- 例子1
table.iloc[0:1,1],输出a    2
-例子2
table.loc[['a','b'],'left']
输出:
a    1
b    4

6.对列元素进行操作

两种方法,一种是针对数字的to_numeric(),一种是针对所有类型的。

tmp['_score'] = tmp['_score'].apply(pd.to_numeric)

7.使用聚合函数

这个真的是最常用的,你可以想到的应用场景统计某一个类别下有多少量,统计一下平均单价,统计一下环比和同比增长,统计一下累积增加值等等,pandas都有函数可以用。在使用的时候需要配合一些函数来用,比如apply、agg、applymap。

8.groupby操作

groupby的作用是按照某个字段进行分组,这个语法本身并不难,但是写法比较多,容易弄混。

9.计数操作

为啥把这个拿出来说呢,因为计数的需求很迷,和sum、avg完全不一样,比较常见的其实就两个需求。

10.na值处理

两个函数,dropna,fillna。里边参数自由组合,可以实现各种需求。

11.数据框的合并

可选的函数有merge、concat、join等。

df1 = pd.DataFrame({'city': ['Chicago', 'San Francisco', 'New York City'], 'rank': range(1, 4)})
df2 = pd.DataFrame({'city': ['Chicago', 'Boston', 'Los Angeles'], 'rank': [1, 4, 5]})
pd.concat([df1,df2])
pd.concat([df1,df2],axis=1)

这里两个地方容易犯错:
你要拼接的两个df没有用中括号括起来,pd.merge(df1,df2);
你用df去调用merge函数,df1.merge(df2)。

data1=pd.DataFrame([{"id":100,"name":'lxh','cs':10},{"id":101,"name":'xiao','cs':40},{"id":102,"name":'hua2','cs':50}])
data2=pd.DataFrame([{"id":0,"name":'lxh','cs':10},{"id":0,"name":'lxh','cs':10},{"id":101,"name":'xiao','cs':40},{"id":102,"name":'hua2','cs':50}])
pd.merge(data1,data2,on='name',how = 'left')
上一篇 下一篇

猜你喜欢

热点阅读