【问题标题】:How do I iterate over list for keyword in pd.DataFrame.assign()?如何遍历 pd.DataFrame.assign() 中的关键字列表?
【发布时间】:2020-05-01 23:15:03
【问题描述】:

我无法通过 Pandas 中的问题。我对python很陌生,所以,这可能是转储问题,但我想我还是问了。 :)

我正在尝试通过循环遍历标签并替换数据来替换 Dataframe 中的许多列。因为,我想创建一个新的数据框,我认为 assign() 是最好的选择。 问题是我想遍历标签并将结果字符串用作分配函数的关键字。

labels_list = ["Label1","Label2","Label3"]

for label in labels_list:
    df3 = df1.assign(label=df2[label])

它是做什么的,它只是将 df2 中的列与 df3 末尾循环中的标签附加在一起。 如果我像这样直接从列表中插入字符串:

df3 = df1.assign(label1=df2[label1])

它正确地完成了工作。 有谁知道我为什么会这样以及如何解决这个问题?

谢谢

【问题讨论】:

  • 对不起,错字!第二个代码块应为:df3 = df1.assign(label1=df2["label1"])

标签: python pandas dataframe assign


【解决方案1】:

使用解包:

df1 = pd.DataFrame()
df2 = pd.DataFrame(np.ones((5, 3)), columns=labels_list)
df3 = df1.assign(**{k:df2[k] for k in labels_list})
print(df3)

输出:

   Label1  Label2  Label3
0     1.0     1.0     1.0
1     1.0     1.0     1.0
2     1.0     1.0     1.0
3     1.0     1.0     1.0
4     1.0     1.0     1.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2016-09-23
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多