熊猫:加入一行特定索引号的数据

时间:2014-09-24 12:43:17

标签: python pandas dataframe

import pandas
a=[['Date', 'letters', 'numbers', 'mixed'], ['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3']]
df = pandas.DataFrame.from_records(a[1:],columns=a[0])

b= [['a', 'b', 'c'], ['a', 'b', 'c']]
df2 = pandas.DataFrame.from_records(b[1:],columns=b[0])

我想在df上加入df2所以它看起来像这样:

       Date letters numbers mixed    a    b    c
0  1/2/2014       a       6    z1  
1  1/2/2014       a       3    z1    a    b    c
2  1/3/2014       c       1    x3  

通过文档查看,我得到了df=df.join(df2,how='outer')

给你这个:

       Date letters numbers mixed    a    b    c
0  1/2/2014       a       6    z1    a    b    c
1  1/2/2014       a       3    z1  NaN  NaN  NaN
2  1/3/2014       c       1    x3  NaN  NaN  NaN

我想要df=df.join(df2,how='outer', on_index = 1)

之类的东西

1 个答案:

答案 0 :(得分:2)

它已经使用特定索引进行连接,恰好是df2中的索引为0,因此当它加入时,将'a', 'b', 'c'放在索引0中。

import pandas

a=[['Date', 'letters', 'numbers', 'mixed'], ['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3']]
df = pandas.DataFrame.from_records(a[1:],columns=a[0])

b= [['a', 'b', 'c'], ['a', 'b', 'c']]
df2 = pandas.DataFrame.from_records(b[1:],columns=b[0], index=[1])

df=df.join(df2,how='outer')

print(df)
#        Date letters numbers mixed    a    b    c
# 0  1/2/2014       a       6    z1  NaN  NaN  NaN
# 1  1/2/2014       a       3    z1    a    b    c
# 2  1/3/2014       c       1    x3  NaN  NaN  NaN

在此代码中,我使用关键字参数df2设置了index = [1]的索引。如果您不能使用此关键字参数,那么您可以使用df2.index = [1]更改索引(在此特定示例中),这应该在加入两个DataFrame之前完成。