我有一个数据框:
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
编辑: pandas版本0.24.2
答案 0 :(得分:0)
我相信df.loc[1:1]
只是空数组,因此转换为NaN
吗?应该是df.loc[2:, 'Value'] = df.loc[1, 'Value']
。