【发布时间】:2017-02-13 21:36:22
【问题描述】:
我有一个有 2 列的 pandas 数据框。我想遍历它的行并基于第 2 列中的字符串我想在新创建的第 3 列中添加一个字符串。我试过了:
for i in df.index:
if df.ix[i]['Column2']==variable1:
df['Column3'] = variable2
elif df.ix[i]['Column2']==variable3:
df['Column3'] = variable4
print(df)
但生成的数据框在第 3 列中只有变量 2。
有什么想法我还能做到这一点吗?
【问题讨论】:
-
您可以使用
for i, r in df.iterrows()获取i作为索引和r作为一系列行值。这使得编写 if、elif 条件更容易if r.Column2==variable1: -
我刚刚意识到您的主要问题是您将整个列 Column3 设置为 ALL
i的变量 2 和变量 4。您只得到 variable2,因为 variable1 是 Column2 中的最后一个元素。换句话说,只需使用df.ix[i, 'Column3'] = variable2和df.ix[i, 'Column3'] = variable4。
标签: python loops pandas conditional-statements multiple-columns