gpt4 book ai didi

python - 使用追加创建数据框

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:53 25 4
gpt4 key购买 nike

我正在尝试创建一个带有 append 项的 DataFrame:

col_stats= ['Attribute', 'Mean', 'Var', 'Std']
stats = pd.DataFrame(columns=[col_stats])

for i in train:
new_row = [
i,
train[i].mean(),
np.var(train[i]),
np.nanstd(train[i])
]
new_row = pd.Series(new_row)
stats = stats.append(new_row, ignore_index=True)

stats

当我删除这一行时它起作用了:

    stats = stats.append(new_row, ignore_index=True)

如果没有,它会给我这个错误:

ValueError: Buffer dtype mismatch, expected 'Python object' but got 'long'

“属性”列是一个字符串(变量的名称)。其他列(Mean、Var、Std)是数字(整数、 float )

为什么我不能在这里使用 pd.df.append?

最佳答案

for循环解决方案 append rows to list and use DataFrame constructor:

L = []
for i in train:
new_row = [
i,
train[i].mean(),
np.var(train[i]),
np.nanstd(train[i])
]
L.append(new_row)

col_stats= ['Attribute', 'Mean', 'Var', 'Std']
stats = pd.DataFrame(L, columns=col_stats)

示例:

train = pd.DataFrame({'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0]})

L = []
for i in train:
new_row = [
i,
train[i].mean(),
np.var(train[i]),
np.nanstd(train[i])
]
L.append(new_row)

col_stats= ['Attribute', 'Mean', 'Var', 'Std']
stats = pd.DataFrame(L, columns=col_stats)

print (stats)
Attribute Mean Var Std
0 B 4.500000 0.250000 0.500000
1 C 5.500000 6.916667 2.629956
2 D 2.833333 6.138889 2.477678

f1 = lambda x: x.var(ddof=0)
f2 = lambda x: x.std(ddof=0)
stats = train.agg(['mean',f1, f2]).T.reset_index()
stats.columns = ['Attribute', 'Mean', 'Var', 'Std']
print (stats)
Attribute Mean Var Std
0 B 4.500000 0.250000 0.500000
1 C 5.500000 6.916667 2.629956
2 D 2.833333 6.138889 2.477678

关于python - 使用追加创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49844960/

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