连接具有不同行数的数据帧

时间:2017-11-18 09:59:53

标签: pandas dataframe

我有一个数据框df = df [[' A',' B'' C']],包含3列和2000行

然后我有另一组只有200行的数据

如何将此添加到df [' D']中,这样200行只会显示为2000行的尾部? 因此,从0-18行到df [' D']它将是NaN,然后​​1801到2000将是值

尝试各种方法但没有成功......谢谢

data with 200 rows in this format
     [[ 0.43628979]
     [ 0.43454027]
     [ 0.43552566]
     [ 0.43542767]
     [ 0.43331838]
    ...

1 个答案:

答案 0 :(得分:1)

我认为您需要join将最后一个索引值index更改为df1

np.random.seed(100)
df1 = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=list('ABC'))
print (df1)
    A  B  C
0   8  8  3
1   7  7  0
2   4  2  5
3   2  2  2
4   1  0  8
5   4  0  9
6   6  2  4
7   1  5  3
8   4  4  3
9   7  1  1
10  7  7  0
11  2  9  9
12  3  2  5
13  8  1  0
14  7  6  2
15  0  8  2
16  5  1  8
17  1  5  4
18  2  8  3
19  5  0  9

df2 = pd.DataFrame(np.random.randint(10, size=(2,5)), columns=list('werty'))
print (df2)
   w  e  r  t  y
0  3  6  3  4  7
1  6  3  9  0  4
df2.index = df1.index[-len(df2.index):]
df = df1.join(df2)
print (df)
    A  B  C    w    e    r    t    y
0   8  8  3  NaN  NaN  NaN  NaN  NaN
1   7  7  0  NaN  NaN  NaN  NaN  NaN
2   4  2  5  NaN  NaN  NaN  NaN  NaN
3   2  2  2  NaN  NaN  NaN  NaN  NaN
4   1  0  8  NaN  NaN  NaN  NaN  NaN
5   4  0  9  NaN  NaN  NaN  NaN  NaN
6   6  2  4  NaN  NaN  NaN  NaN  NaN
7   1  5  3  NaN  NaN  NaN  NaN  NaN
8   4  4  3  NaN  NaN  NaN  NaN  NaN
9   7  1  1  NaN  NaN  NaN  NaN  NaN
10  7  7  0  NaN  NaN  NaN  NaN  NaN
11  2  9  9  NaN  NaN  NaN  NaN  NaN
12  3  2  5  NaN  NaN  NaN  NaN  NaN
13  8  1  0  NaN  NaN  NaN  NaN  NaN
14  7  6  2  NaN  NaN  NaN  NaN  NaN
15  0  8  2  NaN  NaN  NaN  NaN  NaN
16  5  1  8  NaN  NaN  NaN  NaN  NaN
17  1  5  4  NaN  NaN  NaN  NaN  NaN
18  2  8  3  3.0  6.0  3.0  4.0  7.0
19  5  0  9  6.0  3.0  9.0  0.0  4.0