假设我在Pandas中有两个数据框x
和y
,我想填写x
中的一列,其结果是在y
中对列进行排序。我试过这个:
x['foo'] = y['bar'].order(ascending=False)
但它不起作用,我怀疑,因为Pandas 在x
和y
之间对齐索引(它们具有相同的索引集) )在任务期间
我怎样才能让Pandas用另一个数据框中的另一列填充x['foo']
忽略索引的对齐?
答案 0 :(得分:5)
我能想到让pandas
忽略索引的最简单方法是给它一些没有索引的东西。从
>>> x = pd.DataFrame({"foo": [10,20,30]},index=[1,2,0])
>>> y = pd.DataFrame({"bar": [33,11,22]},index=[0,1,2])
>>> x
foo
1 10
2 20
0 30
>>> y
bar
0 33
1 11
2 22
我们采用通常的一致方法:
>>> x["foo"] = y["bar"].order(ascending=False)
>>> x
foo
1 11
2 22
0 33
或未对齐的,将x["foo"]
设置为列表:
>>> x["foo"] = y["bar"].order(ascending=False).tolist()
>>> x
foo
1 33
2 22
0 11