我想从一个数据帧(df2)到另一个数据帧(df1),编写一系列('b'
)。两个数据帧使用相同的索引列,但是df2
的索引范围更大,并且缺少{
这是当前的行为:
>>> import pandas as pd
>>> pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
a b
0 1 4
1 2 5
2 3 6
>>>
>>> df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
>>> df1 = df.set_index(['a'])
>>> df1
b
a
1 4
2 5
3 6
>>> dg = pd.DataFrame({'a': [3, 4, 5], 'b': [7, 8, 9]})
>>> dg
a b
0 3 7
1 4 8
2 5 9
>>> df2 = dg.set_index('a')
>>> df2
b
a
3 7
4 8
5 9
>>> df1['b'] = df2['b']
>>> df1
b
a
1 NaN
2 NaN
3 7.0
当我调用df1['b'] = df2['b']
时,那些不在df2
中的索引值将变成nan
,而不在{df1
。在
下面的数据行为有什么变化吗?在
^{pr2}$
可以使用的一个选项是
reindex()
df2,然后用df1填充缺少的值:这是
combine_first
的一个用例。它将对调用的数据帧进行优先级排序,并用第二个值填充任何缺少的值。它还将连接第二个数据帧中第一个数据帧中没有标签的行。在相关问题 更多 >
编程相关推荐