使标签后的所有值具有与该标签相同的值

时间:2019-05-11 12:27:05

标签: pandas dataframe

我有一个数据框:

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

1 个答案:

答案 0 :(得分:0)

我相信df.loc[1:1]只是空数组,因此转换为NaN吗?应该是df.loc[2:, 'Value'] = df.loc[1, 'Value']