如何在忽略索引对齐的同时分配列

时间:2013-04-12 19:24:49

标签: python pandas

假设我在Pandas中有两个数据框xy,我想填写x中的一列,其结果是在y中对列进行排序。我试过这个:

x['foo']  = y['bar'].order(ascending=False)

但它不起作用,我怀疑,因为Pandas xy之间对齐索引(它们具有相同的索引集) )在任务期间

我怎样才能让Pandas用另一个数据框中的另一列填充x['foo'] 忽略索引的对齐?

1 个答案:

答案 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