Pandas操作

基础操作

1.修改列名

data.columns=["columns1","columns2","columns3"]

2.找出空值所在行

data[data['column1'].isnull()]
#或者
result=data[data.isnull().T.any()]

注意isnull()的结果需要求转置之后,才能进行any()操作

非转置: data.isnull().any(),得到的每一列求any()计算的结果,输出为的Series

转置: frame3.isnull().T.any(),得到的每一行求any()计算的结果,输出为的Series

3.找出某列非空所在行

result=data[data['column1'].notnull()]

4.找出含有特定字符所在行

res=data[data['choice'].str.contains("<img")]

时间操作

1.将字符串转为日期

brand['Date2']=pd.to_datetime(brand['Date'],format="%Y%m%d")

2.将年份和月份组合在一起的一种方法是对它们进行整数编码,例如:2014年8月的201408。在整个列中,您可以这样做:

df['YearMonth'] = df['ArrivalDate'].map(lambda x: 100*x.year + x.month)

3.提取月份和年份pandas.Series.dt.year()pandas.Series.dt.month()

df['Year'] = df['Joined date'].dt.year 
df['Month'] = df['Joined date'].dt.month 

4.日期时间间隔运算
使用datetime里的timedelta函数

import datetime
from datetime import timedelta

#相加天数
df['time_list']+timedelta(days=1)

#相减天数
df['time_list']-timedelta(days=1)

#相加小时
df['time_list']+timedelta(hours=5)

#按周计算
df['time_list']-timedelta(weeks=5)

月份和年份数据不能直接计算因每年和每月的天数不一样

合并操作

1.merge

result=pd.merge(table1,table2,how='left',on='column1')

how参数
left为左连接
right为右连接
inner为内连接,合并公有的
outer为全连接

2.concat

相同字段的表首尾相接

frames = [df1, df2, df3]
result = pd.concat(frames)

缺失值处理

posted @ 2020-08-05 11:09  hank-li  阅读(209)  评论(0编辑  收藏  举报