合併數據集:數組
建立一個能建立dataframe的函數app
def make_data(cols,ind):函數
data={c:[strc(c)+str(i) for i in ind] 索引
for c in cols}pandas
return pd.DataFrame(data,ind)it
make_data('ABC',range(3))基礎
一維數組數據
ser1 = pd.Series(['a','b','c'],index=[1,2,3])異常
ser2 = pd.Series(['d','e','f'],index=[4,5,6])二維數組
pd.concat([ser1,ser2])
二維數組
df1 = make_data('ab',[1,2])
df2 = make_data('ab',[3,4])
pd.concat([df1,df2]) 默認逐行合併axis=0(上下合併)
pandas 在合併索引時會保留索引,即便是重複的
觸發索引重複異常:
veriy_integrity參數能夠觸發索引重複異常
try:
pd.concat([x,y],verify_integrity=True)
except ValueError as e:
print('v')
忽略索引重複異常:
ignore_index能夠實現忽略原先索引從新建立一個整數索引
當列名有相同也有不相同時
join,join_axes
join默認參數是outer 取兩個數組的並集
inner指取兩個數組的交集
append效果和concat相同
df1.append(df2)
重複列名 suffixes
df8 = pd.DataFrame({'name':['a','b','c'],'rank':[1,2,3]})
df9 = pd.DataFrame({'name':['a','b','c'],'rank':[4,5,6]})
pd.merge(df8,df9,on='name',suffixes=['_L','_R'])
merge效果和concat相同,on表示以name這一列爲基礎合併,suffixes表示將相同的兩列區分