Pandas操作

2020-09-17 10:43:10 浏览数 (1)

基础操作

1.修改列名

代码语言:javascript复制
data.columns=["columns1","columns2","columns3"]

2.找出空值所在行

代码语言:javascript复制
data[data['column1'].isnull()]
#或者
result=data[data.isnull().T.any()]

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

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

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

3.找出某列非空所在行

代码语言:javascript复制
result=data[data['column1'].notnull()]

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

代码语言:javascript复制
res=data[data['choice'].str.contains("<img")]

时间操作

1.将字符串转为日期

代码语言:javascript复制
brand['Date2']=pd.to_datetime(brand['Date'],format="%Y%m%d")

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

代码语言:javascript复制
df['YearMonth'] = df['ArrivalDate'].map(lambda x: 100*x.year   x.month)

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

代码语言:javascript复制
df['Year'] = df['Joined date'].dt.year 
df['Month'] = df['Joined date'].dt.month 

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

代码语言:javascript复制
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

代码语言:javascript复制
result=pd.merge(table1,table2,how='left',on='column1')

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

2.concat

相同字段的表首尾相接

代码语言:javascript复制
frames = [df1, df2, df3]
result = pd.concat(frames)

缺失值处理

0 人点赞