【发布时间】:2021-01-02 23:33:23
【问题描述】:
在一个包含 5 列的 csv 文件中,我试图在 2 列之一中复制一个值,以防与该列相关的特定字符串匹配。
首先 csv 文件如下所示
# 'Test.csv'
col1 col2 col3 col4 col5
alex str1 47 0 54
beth str2 94 94 0
stan str1 18 0 18
hank str1 37 0 37
june str1 84 0 84
mary str2 34 34 0
简单地说,
如果'col2'的值为'str1',那么只有'col4'被'col3'的值填充,
(要么)
如果 'col2' 的值为 'str2',则只有 'col5' 填充有 'col3' 的值。
似乎非常接近我的答案的代码在这个article 中,但我无法针对上面的数据修改它。
Copy value from one column based on the value of another column
【问题讨论】:
-
链接答案的解决方案是什么?解决方案有什么问题?它应该运作良好。
-
嗨@jezrael,它显示的答案是这样的:“df_copy.loc[df['D']=='Test', 'A'] = df['B']”,但我到目前为止能够做到这一点,“df.loc[df[“col2”]=='str1',“我没有遵循那个解决方案中的'A'......对不起,我是一个菜鸟......
-
那么需要
df_copy.loc[df_copy['col2']=='str1', 'col4'] = df_copy['col3'] df_copy.loc[df_copy['col2']=='str2', 'col5'] = df_copy['col3']吗? -
非常感谢@jezrael,您能否将其作为答案,以便我可以将您的答案标记为解决方案...再次感谢您
标签: python-3.x pandas string-matching