gpt4 book ai didi

python - 从现有数据框创建新的数据框而不缺少值

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:30 24 4
gpt4 key购买 nike

我坚持完成一个很明显的任务。

我有一个缺少数据的 df。为了处理此类数据,我想测试两个数据帧。

对于第一个 X_real_zeros - 我将 missing 替换为 0。对于第二个 X_real_means - 列的平均值。

我已经在一个数组中收集了所有数字列名

numeric_cols = ['RFCD.Percentage.1', 'RFCD.Percentage.2', 'RFCD.Percentage.3', 
'RFCD.Percentage.4', 'RFCD.Percentage.5',
'SEO.Percentage.1', 'SEO.Percentage.2', 'SEO.Percentage.3',
'SEO.Percentage.4', 'SEO.Percentage.5',
'Year.of.Birth.1', 'Number.of.Successful.Grant.1', 'Number.of.Unsuccessful.Grant.1']

然后我尝试创建两个数据框。

data = pd.read_csv('data.csv')
X_real_zeros = data
for col in numeric_cols:
X_real_zeros[col] = data[col].fillna(0)

X_real_means = data
a = calculate_means(data[numeric_cols])
for col in numeric_cols:
print(a[col], col)
X_real_means[col] = data[col].fillna(a[col])

但是,当我想创建第二个时,结果发现我的 data 数据框已被修改。无论如何,我认为我的方法不准确,解决此类任务的正确方法是什么?

最佳答案

使用

X_real_means = data.copy()

否则,变量 X_real_means 将引用与 data 完全相同的对象。

Wes Mickenny在这里回答了类似的问题:pandas dataframe, copy by value


修改后的整体代码如下所示:

data = pd.read_csv('data.csv')
X_real_zeros = data.copy()
for col in numeric_cols:
X_real_zeros[col] = data[col].fillna(0)

X_real_means = data.copy()
a = calculate_means(data[numeric_cols])
for col in numeric_cols:
print(a[col], col)
X_real_means[col] = data[col].fillna(a[col])

关于python - 从现有数据框创建新的数据框而不缺少值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46488412/

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