gpt4 book ai didi

python - 如何在 Pandas 数据框中的动态列中添加值?

转载 作者:行者123 更新时间:2023-12-02 02:11:08 25 4
gpt4 key购买 nike

我有两个列表,其中一个列表有动态的名称,另一个列表。我如何将该 map 映射到我的数据框df。因此,为此我将这些列表作为静态的。但在我的程序中将是动态的。

df = pd.DataFrame(columns = ['ABC', 'LMN', 'XYZ','PQR']
columns = ['LMN','PQR']
values = ['234','654']

到目前为止我已经尝试过了

for i in range(len(values)):
df[columns[i]] = np.where(df[columns[i]] == columns[i], values[i], 0)

预期输出:-

Id  ABC  LMN  XYZ  PQR
0 0 234 0 654

最佳答案

您可以获取包含列表 values 中的元素的 Pandas 系列,其中 df 中的所有列作为索引,并用 0 填充未定义的条目,然后将其附加到 df,如下:

s = pd.Series(data=values, index=columns).reindex(df.columns).fillna(0)
df = df.append(s, ignore_index=True)

结果:

print(df)


ABC LMN XYZ PQR
0 0 234 0 654

我们使用.reindex()这样该系列就已经拥有了与df的全套列相对应的全套索引。因此,我们可以在附加到 df 之前用 0 填充 NaN 值。


或者,我们还可以简化步骤如下:

s = pd.Series(data=values, index=columns)
df = df.append(s, ignore_index=True).fillna(0)

这个版本比之前的版本更简单,不需要使用.reindex() 。但是,在 .fillna() 步骤中,它还会填充前一行的 NaN 值。

取决于您是否要保留前一行的 NaN 值。如果您不需要保留前一行的 NaN 值,那么这是一个更简单的版本。否则,以前的版本更合适。

关于python - 如何在 Pandas 数据框中的动态列中添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67750592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com