如何将数据框均值分配给特定的数据框行?
How to assigne a dataframe mean to specific rows of dataframe?
我有这样一个数据框
df_a = pd.DataFrame({'a': [2, 4, 5, 6, 12],
'b': [3, 5, 7, 9, 15]})
Out[112]:
a b
0 2 3
1 4 5
2 5 7
3 6 9
4 12 15
意思是
df_a.mean()
Out[118]:
a 5.800
b 7.800
dtype: float64
我想要这个;
df_a[df_a.index.isin([3, 4])] = df.mean()
但是我遇到了一个错误。我如何实现这一目标?
我在这里举了一个例子。我需要对正在处理的数据进行大量更改的观察结果。我将它们的索引值保存在列表中
如果要覆盖列表中行的值,可以使用 iloc
df_a = pd.DataFrame({'a': [2, 4, 5, 6, 12], 'b': [3, 5, 7, 9, 15]})
idx_list = [3, 4]
df_a.iloc[idx_list,:] = df_a.mean()
输出
a b
0 2.0 3.0
1 4.0 5.0
2 5.0 7.0
3 5.8 7.8
4 5.8 7.8
编辑
如果您使用的是 pandas
的旧版本并且看到 NaN
而不是想要的值,您可以使用 for
循环
df_a_mean = df_a.mean()
for i in idx_list:
df_a.iloc[i,:] = df_a_mean
我有这样一个数据框
df_a = pd.DataFrame({'a': [2, 4, 5, 6, 12],
'b': [3, 5, 7, 9, 15]})
Out[112]:
a b
0 2 3
1 4 5
2 5 7
3 6 9
4 12 15
意思是
df_a.mean()
Out[118]:
a 5.800
b 7.800
dtype: float64
我想要这个;
df_a[df_a.index.isin([3, 4])] = df.mean()
但是我遇到了一个错误。我如何实现这一目标? 我在这里举了一个例子。我需要对正在处理的数据进行大量更改的观察结果。我将它们的索引值保存在列表中
如果要覆盖列表中行的值,可以使用 iloc
df_a = pd.DataFrame({'a': [2, 4, 5, 6, 12], 'b': [3, 5, 7, 9, 15]})
idx_list = [3, 4]
df_a.iloc[idx_list,:] = df_a.mean()
输出
a b
0 2.0 3.0
1 4.0 5.0
2 5.0 7.0
3 5.8 7.8
4 5.8 7.8
编辑
如果您使用的是 pandas
的旧版本并且看到 NaN
而不是想要的值,您可以使用 for
循环
df_a_mean = df_a.mean()
for i in idx_list:
df_a.iloc[i,:] = df_a_mean