使用Pandas操作多列

时间:2016-07-25 09:22:21

标签: python pandas

我有一个3000多万行数据集,我需要应用一整套数据转换规则。对于这项任务,我试图探索Pandas作为一种可能的解决方案,因为我目前的解决方案不是很快。

目前,我正在逐行处理数据集,然后将其导出到磁盘上的新表(CSV文件)。

用户可以对给定列中的数据执行5个函数:

  1. 删除空格
  2. 将所有文字大写
  3. 格式日期
  4. 替换字母/数字
  5. 替换字词
  6. 我的第一个想法是使用数据框的apply或applmap,但这只能用于单个列。

    有没有办法将apply或applymap用于许多列而不只是一个? 是否有更好的工作流程我应该考虑,因为我可以对我的数据集中的1:n列进行操作,其中最大列数目前为30左右。

    谢谢

1 个答案:

答案 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