python - 如何用熊猫数据框中第一行和相应行之间的列的平均值填充特定值
问题描述
我有一个这样的df,
A B C D E
1 2 3 0 2
2 0 7 1 1
3 4 0 3 0
0 0 3 4 3
我正在尝试将第一行和对应列的 0 值行之间的所有 0 替换为 mean() 值,
我的预期输出是,
A B C D E
1.0 2.00 3.000000 0.0 2.0
2.0 1.00 7.000000 1.0 1.0
3.0 4.00 3.333333 3.0 1.0
1.5 1.75 3.000000 4.0 3.0
解决方案
IIUC
def f(x):
for z in range(x.size):
if x[z] == 0: x[z] = np.mean(x[:z+1])
return x
df.astype(float).apply(f)
A B C D E
0 1.0 2.00 3.000000 0.0 2.0
1 2.0 1.00 7.000000 1.0 1.0
2 3.0 4.00 3.333333 3.0 1.0
3 1.5 1.75 3.000000 4.0 3.0
推荐阅读
- python-3.x - 如何使用 Google Colab 处理本地文件?
- javascript - Is there a regular expression which matches a single grapheme cluster?
- python - Run python script in background while sending subprocess stdout and stderr to PIPE
- c - c中带有char指针的二维数组
- bash - 在mac终端中bash osascript(AppleScript),顺序运行多个命令
- javascript - abnormal behavior javascript select alert
- jsf - 如果 primefaces 对话框通过“X”关闭按钮关闭,则清除表单或调用方法
- java - How to do toast queue?
- dart - 在 Flutter 中检索图像路由
- c++ - Convert from char array to string variable