pandas 常用函数总结(待更新)

目录

1. 将时间字符串转化为时间戳

2. 设置索引列

3. 读取文件columns细节处理

3.1 csv默认将第一行设置为columns

3.2 想要换一个别的列名(原来有)

3.3 想加列名,原来没有

3.4 不想加列名,原来也没有

4. groupby

4.1 agg聚合操作

4.2 apply操作


1. 将时间字符串转化为时间戳

原始数据: 

                    观测时间        经度       纬度     强度     陡度
0  2012-02-22 12:14:52.0  118.6845  31.6724  55.66   5.02
1  2012-02-22 12:21:55.0  118.6875  31.7405  72.99  62.28
2  2012-02-22 12:27:46.0  118.6998  31.7565  77.46   8.93
3  2012-02-22 12:35:34.0  118.9438  31.4310 -29.47 -17.97
4  2012-02-22 12:35:34.0  118.9416  31.4422 -13.43  -6.88

代码: 

data['观测时间']=data['观测时间'].apply(lambda x:time.mktime(time.strptime(x,'%Y-%m-%d %H:%M:%S.0')))

 效果:

            观测时间        经度       纬度      强度      陡度
0   1.329884e+09  118.6845  31.6724   55.66    5.02
1   1.329885e+09  118.6875  31.7405   72.99   62.28
2   1.329885e+09  118.6998  31.7565   77.46    8.93
3   1.329885e+09  118.9438  31.4310  -29.47  -17.97
4   1.329885e+09  118.9416  31.4422  -13.43   -6.88 

 解释:

strptime函数是将字符串按照后面的格式转换成时间元组类型;mktime函数则是将时间元组转换成时间戳。


2. 设置索引列

代码: 

data.set_index("观测时间", inplace=True)	

解释:

将 data["观测时间"] 作为新的索引。


3. 读取文件columns细节处理

以 read_csv() 为例

3.1 csv默认将第一行设置为columns

import pandas as pd 

df_example = pd.read_csv('xxx.csv')
# 等同于:
df_example = pd.read_csv('xxx.csv', header=0)

3.2 想要换一个别的列名(原来有)

df_example = pd.read_csv('xxx.csv', names=['A', 'B','C']) 

# 即
df_example = pd.read_csv('xxx.csv', header=0, names=['A', 'B','C']) 

# header=0 来说明文件里原来有列名

3.3 想加列名,原来没有

df_example = pd.read_csv('xxx.csv', header=None, names=['A', 'B','C']) 
# header=None 来说明原来是没有columns的

3.4 不想加列名,原来也没有

df_example = pd.read_csv('xxx.csv', header=None) 
# header=None 来说明原来是没有columns的

4. groupby

groupby的过程就是将原有的DataFrame按照groupby,划分为若干个分组DataFrame。但此时数据结构为DataFrameGroupBy,可以在此基础上调用get_group(),返回的则是一个·DataFrame·对象。所以说,在groupby之后的一系列操作(如aggapply等),均是基于子DataFrame的操作。

group = data.groupby("company")

# 根据company将原有DataFrame分成不同的子DataFrame

4.1 agg聚合操作

针对样例数据集,如果我想求不同公司员工的平均年龄和平均薪水,可以按照下方的代码进行:

In [12]: data.groupby("company").agg('mean')
Out[12]:
         salary    age
company
A         21.50  27.50
B         13.00  29.00
C         29.25  27.25

如果想对针对不同的列求不同的值,比如要计算不同公司员工的平均年龄以及薪水的中位数,可以利用字典进行聚合操作的指定:

In [17]: data.groupby('company').agg({'salary':'median','age':'mean'})
Out[17]:
         salary    age
company
A          21.5  27.50
B          10.0  29.00
C          30.0  27.25

4.2 apply操作

aggregate函数不同于apply,前者是对所有的数值进行一个聚合的操作,而后者则是对每个数值进行单独的一个操作。

def addOne(data):
    return data + 1

df['Age'] = df['Age'].apply(addOne)
df['Age'] = df['Age'].apply(int)

感谢(不断增加 =,=):

pandas将日期转换成timestamp

Pandas在读取csv时如何设置列名--常用方法集锦pandas之分组groupby()的使用整理与总结_敲代码的quant的博客-CSDN博客

超好用的 pandas 之 groupby - 简书

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值