如何在数据帧中将新列值列表设置为 0.0?[复制]

How to set a list of new columns values to 0.0 in a dataframe? [duplicate]

提问人:24n8 提问时间:11/16/2023 更新时间:11/16/2023 访问量:41

问:

假设我有一个列列表

cols = ['col1', 'col2', 'col3']

和 DataFrame

df = pd.DataFrame()

我想将它们添加到并将它们设置为 .colsdf0.0

for col in cols:
  df[col] = 0.0

有效,但

df[cols] = 0.0

导致错误

KeyError: "None of [Index(['col1', 'col2', 'col3'], dtype='object')] are in the [columns]"

为什么这不起作用?当您想要查询列列表的列值时,可以以类似的方式传入列列表,但初始化似乎以不同的方式工作。

Python Pandas 数据帧

评论

0赞 24n8 11/16/2023
@s_pike 是的,我认为确实如此

答:

1赞 Elvis Ohemeng Gyaase 11/16/2023 #1

我不知道您的应用程序,但一列必须有一些行,即列表。 根据您的问题,我建议您创建一个包含您的列的字典和一个包含 0.0 列表的列表。请参阅下面的代码

import pandas as pd
import numpy as np
cols = ['col1', 'col2', 'col3']
#source https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html
# depending on how may values you want in your column change the variable 
number_of_rows_in_column=10
# create a dictionary add a list of 0.0s under as value for each column
data=dict(zip(cols,[[ 0.0 for _ in range(number_of_rows_in_column) ] for _ in range(len(cols))]))
df=pd.DataFrame(data=data)

有关一些信息,请参阅此处