如何解决如何将数据帧平均值分配给数据帧的特定行?
df_a = pd.DataFrame({'a': [2,4,5,6,12],'b': [3,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,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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。