【发布时间】:2020-08-12 13:57:10
【问题描述】:
我有大量文件,我必须根据字符串列进行计算。相关列如下所示。
df = pd.DataFrame({'A': ['A', 'B', 'A', 'B'], 'B': ['B', 'C', 'D', 'A'], 'C': ['A', 'B', 'D', 'D'], 'D': ['A', 'C', 'C', 'B'],})
A B C D
0 A B A A
1 B C B C
2 A D D C
3 B A D B
我必须创建新列,其中包含每行中某些字符串的出现次数。我这样做:
for elem in ['A', 'B', 'C', 'D']:
df['n_{}'.format(elem)] = df[['A', 'B', 'C', 'D']].apply(lambda x: (x == elem).sum(), axis=1)
A B C D n_A n_B n_C n_D
0 A B A A 3 1 0 0
1 B C B C 0 2 2 0
2 A D D C 1 0 1 2
3 B A D B 1 2 0 1
但是,每个文件都需要几分钟,我必须为大约 900 个文件执行此操作。有什么办法可以加快速度吗?
【问题讨论】:
-
列名和值相同的原因..?
-
不,我只是为了简单而这样做