首页 > 解决方案 > 如何将数据框的含义分配给特定的数据框行?

问题描述

我有一个这样的数据框

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()

但我遇到了一个错误。我如何实现这一目标?我在这里举了一个例子。我需要对正在使用的数据进行大量更改。我将它们的索引值保存在一个列表中

标签: pandasdataframerowmeanunassigned-variable

解决方案


如果要覆盖列表中行的值,可以使用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并看到NaNs 而不是想要的值,则可以使用for循环

df_a_mean = df_a.mean()
for i in idx_list:
    df_a.iloc[i,:] = df_a_mean

推荐阅读