1、删除某一列
df_color = df_color.drop('12345颜',axis=1)
2、使用merge,根据多个条件进行合并
df_taskinfo_color = df_taskinfo.merge(df_color,how='left',on=['a','b','c','d'])
3、读取文件时只选择某几列
data = pd.read_csv('data.csv',usecols=[0,1,2])
4、更改某列的名称
df_find = pd.concat([df_find1,df_find2]).rename({'inserttime':'发现时间'},axis=1)
5、更改某列的数据类型
df_dict['operatetype'] = df_dict['operatetype'].astype(str)
6、读取csv文件乱码
df_dict = pd.read_csv(path,sep=',',encoding='GB18030')
7、按某列进行排序
// ascending默认参数为True,表示升序;False表示降序
df=df.sort_values(by='列名',ascending=True)
8、某一列包含某一字符
df_taskinfo = df_taskinfo[df_taskinfo['infobcname'].str.contains(r'你好',na=True)]
9、某一类为某几个值
df_track_all = df_track_all[df_track_all['type'].isin(['2','7'])]
10、基于多列使用函数
df.apply(lambda row: get_school(row[''], row[''], row['ccc']), axis=1)
11、多列的set合并为一列
def merge_set(x):
res = set()
for col in ['aaa', 'bbb', 'ccc']:
res = res | x.loc[col]
return res
df['res] = df.apply(merge_set)
12、转为时间
df_dispatch['dispatchtime'] = pd.to_datetime(df_dispatch.loc[:,'dispatchtime'])
13、一列切割成多列
pd.concat([df,df['主体'].str.split('_', expand=True)],axis=1).rename({0:'主体类型',1:'主体名称'},axis=1)
14、按某个字段排序
df.sort_values(by='C',ascending=False)
15、一行转为多行
df['关注人2']=df['关注人'].map(lambda x:x.split(','))
df=df.explode('关注人2')
16、计算时间差
import time
import datetime
def Caltime(date2,date1):
# 返回秒数
date1=time.strptime(date1,"%Y-%m-%d %H:%M:%S")
date2=time.strptime(date2,"%Y-%m-%d %H:%M:%S")
date1=datetime.datetime(date1[0],date1[1],date1[2],date1[3],date1[4],date1[5])
date2=datetime.datetime(date2[0],date2[1],date2[2],date2[3],date2[4],date2[5])
return (date2-date1).seconds+(date2-date1).days*86400
Caltime('2022-03-25 09:05:46','2022-03-24 09:05:40')
17、善用df.iterrows()
for idx, data in df.iterrows():
all_count.append(data['aa'])
str = ''.join(all_count)
18、生成一个df
df1 = pd.DataFrame(columns=['aa', 'bb', 'cc'])
for k, v in kk_dict.items():
try:
df = pd.DataFrame({"aa": k,
'bb': v,
'cc': [set(my_dict[k])]
})
df1 = df1.append(df)
except KeyError as e:
df = pd.DataFrame({"aa": k,
'bb': v,
'cc': ['null']
})
df1 = df1.append(df)
19、由其他列组合成一个新的列
# 根据前面两列生成第七列的值
for i in range(len(a_fljg)):
a_fljg.iat[i, 6] = a_fljg.iat[i, 0] + '-' + a_fljg.iat[i, 1]
20.调整列位置
df_new = df.reindex(columns=new_columns)#调整索引,不仅仅调整行,也可以调整列
21.对某列进行简单处理
df.loc[:,'discovertime'].map(lambda x:str(x).split(" ")[0])
某列按逗号分隔
df1.groupby('keyword')['taskid'].apply(lambda x: x.str.cat(sep=',')