pandas - 使标签后的所有值都具有该标签的相同值
问题描述
我有一个数据框:
import numpy as np
import pandas as pd
np.random.seed(42)
df = pd.DataFrame(np.random.randint(0, 10, size=(5, 2)), columns=['col1', 'col2'])
生成以下帧:
col1 col2
0 6 3
1 7 4
2 6 9
3 2 6
4 7 4
我想用第 1 行的任何值替换第 2 行的所有值。所以我输入:
df.loc[2:] = df.loc[1:1]
但生成的帧充满了 nan:
col1 col2
0 6.0 3.0
1 7.0 4.0
2 NaN NaN
3 NaN NaN
4 NaN NaN
我知道我可以fillna(method='ffill')
用来得到我想要的,但为什么广播不起作用,结果是 NaN?预期结果:
col1 col2
0 6 3
1 7 4
2 7 4
3 7 4
4 7 4
编辑:熊猫版本 0.24.2
解决方案
我相信df.loc[1:1]
只是空数组,因此转换为NaN
?应该是df.loc[2:, 'Value'] = df.loc[1, 'Value']
。
推荐阅读
- python - 如何通过交互包装函数修改matplotlib fig、ax 对象?
- build - 如何从源代码在 Windows 10 中构建 flann?
- rest - Powershell 正在吞噬 REST 错误响应
- javascript - 变量没有改变类内的属性
- sql-server - 同一个表的所有记录都由一个字段关联但由另一个字段查询 - sqlserver
- c# - 如何在 ListView Xamarin Form 中显示动态类型列表?
- python - 无法区分用于执行一项特定操作的两个选择器
- java - 如何仅使用 Selenide 指定 chrome 配置文件
- php - 正则表达式排除搜索词组?
- python - 如何在它选择的 seaborn 分布图中添加一条垂直线?