我有一个3000多万行数据集,我需要应用一整套数据转换规则。对于这项任务,我试图探索Pandas作为一种可能的解决方案,因为我目前的解决方案不是很快。
目前,我正在逐行处理数据集,然后将其导出到磁盘上的新表(CSV文件)。
用户可以对给定列中的数据执行5个函数:
我的第一个想法是使用数据框的apply或applmap,但这只能用于单个列。
有没有办法将apply或applymap用于许多列而不只是一个? 是否有更好的工作流程我应该考虑,因为我可以对我的数据集中的1:n列进行操作,其中最大列数目前为30左右。
谢谢
答案 0 :(得分:2)
如果需要应用仅与Series
合作的某项功能,您可以将列表理解与concat
一起使用:
import pandas as pd
data = pd.DataFrame({'A':[' ff ','2','3'],
'B':[' 77','s gg','d'],
'C':['s',' 44','f']})
print (data)
A B C
0 ff 77 s
1 2 s gg 44
2 3 d f
print (pd.concat([data[col].str.strip().str.capitalize() for col in data], axis=1))
A B C
0 Ff 77 S
1 2 S gg 44
2 3 D F