从另一个DataFrame列填充一个列,但每个第n行值



我试图使用iloc将DataFrame df2列中的每第二个值填充到DataFrame df1列中,但是,我在结果中获得了替代NULL值。我如何得到连续值没有NULL值?

例如:

df1 = pd.DataFrame({'col1': [1, 2, 3, 4], 'col2': list('ABCD')})
df2 = pd.DataFrame({'col1': [2, 4, 6, 8, 10, 12, 14, 16]})
df1.col1 = df2.iloc[::2]

输出:

| col1     | col2           |
| -------- | -------------- |
|   2      |     A          |
|  NULL    |     B          |
|   6      |     C          |
|  NULL    |     D          |

预期输出:

| col1     | col2           |
| -------- | -------------- |
|   2      |     A          |
|   6      |     B          |
|   8      |     C          |
|   10     |     D          |

Series转换为列表,它应该为您工作,同样:

df1.col1 = df2.iloc[::2].tolist()

输出:

| col1     | col2           |
| -------- | -------------- |
|   2      |     A          |
|   6      |     B          |
|   8      |     C          |
|   10     |     D          |

你可以这样做:

df2.iloc[::2, :]

这将给你:

col1
0     2
2     6
4    10
6    14

相关内容

最新更新