这听起来有点不可思议,但是我认为这正是我现在需要的:
我有几个熊猫数据框,其中包含带有浮点数的列,例如:
a b c
0 0 1 2
1 3 4 5
2 6 7 8
现在,我想添加一列,仅包含一行,并且该值等于列“ a”的平均值,在这种情况下为3.0。因此,新的数据框将如下所示:
a b c average
0 0 1 2 3.0
1 3 4 5
2 6 7 8
下面的所有行都是空的。
我已经尝试过类似df['average'] = np.mean(df['a'])
之类的事情,但这使我的专栏总分为3.0。任何帮助将不胜感激。
答案 0 :(得分:3)
可以执行以下操作:
df['average'] = [np.mean(df['a'])]+['']*(len(df)-1)
答案 1 :(得分:3)
这是一个完整的例子:
import pandas as pd
import numpy as np
df = pd.DataFrame(
[(0,1,2), (3,4,5), (6,7,8)],
columns=['a', 'b', 'c'])
print(df)
a b c
0 0 1 2
1 3 4 5
2 6 7 8
df['average'] = ''
df['average'][0] = df['a'].mean()
print(df)
a b c average
0 0 1 2 3
1 3 4 5
2 6 7 8
答案 2 :(得分:2)
分配一个系列,这样更干净。
df['average'] = pd.Series(df['a'].mean(), index=df.index[[0]])
或者更好的是分配loc
:
df.loc[df.index[0], 'average'] = df['a'].mean().item()
填写NaN很简单,您可以做到
df['average'] = df['average'].fillna('')
df
a b c average
0 0 1 2 3
1 3 4 5
2 6 7 8