python - 反转 Pandas 子集数据框中的字符串列

标签 python string pandas reverse

我有以下数据框。

    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 文件中的所有匹配行执行此操作?

谢谢。

最佳答案

#cols = ['Alice','Bob']
In [17]: cols = df.columns.drop(['ID','LOC'])

In [18]: df.loc[df.LOC=='ES', cols] = df.loc[df.LOC=='ES', cols].apply(lambda x: x.str[::-1])

In [19]: df
Out[19]:
   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

关于python - 反转 Pandas 子集数据框中的字符串列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335053/

相关文章:

pandas - 根据之前的数据填写数据框

python - 使用 NaT 值对 Pandas 数据框进行排序

python - 在 Django 查询集过滤器中,如何检查 json 字段中的至少一个键是否具有非空值?

python - Python PEP 是公共(public)域吗?

javascript - 如何将 HTML 转换为没有标签和特殊字符的文本?

javascript - 理解另一个添加数字数字的 Javascript 片段

python - 使用 python 脚本过滤 SPARQL 查询中的数据

python - 在 Python 2.7 中使用 Ruffus 库,just_print 标志失败

C 字符串段错误

python - 从合并列的代码中获取类别类型