pandas基本操作

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=',')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值