首页 > 解决方案 > 使标签后的所有值都具有该标签的相同值

问题描述

我有一个数据框:

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

标签: pandasdataframe

解决方案


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


推荐阅读