我有以下数据框。
ID LOC Alice Bob Karen
0 1 CH 9|5 6|3 4|4
1 2 ES 1|1 0|8 2|0
2 3 DE 2|4 6|6 3|1
3 4 ES 3|9 1|2 4|2
Alice和Bob列包含字符串值。我想根据另一列的值来反转这些列中的字符串。例如,在LOC == ES的情况下,反转对应列中的字符串将类似于:
ID LOC Alice Bob Karen
0 1 CH 9|5 6|3 4|4
1 2 ES 1|1 8|0 0|2
2 3 DE 2|4 6|6 3|1
3 4 ES 9|3 2|1 2|4
有没有一种快速方法可以对具有数千行的csv文件中的所有匹配行执行此操作?
谢谢。
使用df.loc
来获取行切片,然后使用和[::-1]
在Alice
和Bob
列上应用字符串反向操作df.applymap
。
In [533]: df.loc[df['LOC'] == 'ES', ['Alice', 'Bob']] = \
df.loc[df['LOC'] == 'ES', ['Alice', 'Bob']].applymap(lambda x: x[::-1])
In [534]: df
Out[534]:
ID LOC Alice Bob Karen
0 1 CH 9|5 6|3 4|4
1 2 ES 1|1 8|0 2|0
2 3 DE 2|4 6|6 3|1
3 4 ES 9|3 2|1 4|2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句