Dataframe的索引问题

1 两个Dataframe相加时,一定要注意索引是否对应再相加,利用这个特点有时可以先用set_index()将某些列置为索引列,再进行相加.

import pandas as pd
df1 = pd.DataFrame({'a':np.arange(1,5,1),
                    'b':np.arange(3,15,3)}, index=[2,3,4,5])
df2 = pd.DataFrame({'c':[2,3,4,5],
                    'd':[6,7,8,9]})
print(df1)
print(df2)
# 当两个Dataframe的两个列对应相加时,是将相同的行索引对应的数据进行相加.
# 如下当两个Dataframe的行索引对不上时,直接相加生成新的series,
# 该series的行索引是原先两个Dataframe索引的并集.
e = df1['a'] + df2['c']
print(e)
# 当将相加的结果赋给其中一个Dataframe时,生成的索引与被赋的那个一样,
# 能对上的直接相加,对不上的就为空值.
df1['e'] = df1['a'] + df2['c']
print(df1)
#    a   b
# 2  1   3
# 3  2   6
# 4  3   9
# 5  4  12
#    c  d
# 0  2  6
# 1  3  7
# 2  4  8
# 3  5  9
# 0    NaN
# 1    NaN
# 2    5.0
# 3    7.0
# 4    NaN
# 5    NaN
# dtype: float64
#    a   b    e
# 2  1   3  5.0
# 3  2   6  7.0
# 4  3   9  NaN
# 5  4  12  NaN
View Code