gpt4 book ai didi

python - 如何在 pandas 数据框中单元格中的列表中插入字符串值?

转载 作者:行者123 更新时间:2023-12-04 15:17:41 25 4
gpt4 key购买 nike

我正在尝试使用数据集中的虚拟变量创建标签。我创建了一个列“Tags_col”,每次我的嵌套 for 循环遍历每一行时,如果某个类别有 1,我希望该类别包含在每一行的 tags_col 列表中。

像这样:

Dog   Cat   Rabbit   Tags_col
0 1 1 ['Cat','Rabbit']
1 0 0 ['Dog']

到目前为止我有这个:

for x in range(len(df)):
for col in df.columns:
if df.loc[x,col] == 1:
df.loc[x, "Tags_col"] = col

但是,这只是附加 for 循环在 Tags_col 中找到的第一个类别。

谢谢。

最佳答案

通过比较 1 和从列名称创建的过滤器数组,将列表推导式与 bool 值 DataFrame 结合使用:

cols = df.columns.to_numpy()
df['Tags_col'] = [list(cols[x]) for x in df.eq(1).to_numpy()]
print (df)

Dog Cat Rabbit Tags_col
0 0 1 1 [Cat, Rabbit]
1 1 0 0 [Dog]

如果性能不重要,请使用 DataFrame.apply :

df['Tags_col'] = df.apply(lambda x: list(x.index[x==1]), axis=1)
print (df)
Dog Cat Rabbit Tags_col
0 0 1 1 [Cat, Rabbit]
1 1 0 0 [Dog]

关于python - 如何在 pandas 数据框中单元格中的列表中插入字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64005763/

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