天天看點

使用pandas中concat進行資料整合Concat

這節主要學習:學習如何利用pandas中的整合多個DataFrame或者Series中的資料。

Concat

知識要點

1:concat解決的是對資料進行合并的問題

2:concat()方法的格式

pd.concat(objs, axis=0, join='outer', ignore_index=False,

          keys=None, levels=None, names=None, verify_integrity=False,

          copy=True)

注:

bjs:清單對象,待合并的DataFrame或者Series,可以包含兩個或者兩個以上的對象。

axis:用來指定按行(上下拼)還是按列(左右拼)合并,預設按照行進行合并。如果需要按照列進行合并,需要指定參數axis=1

join:确定合并時候記錄的比對方法,後面介紹按列進行合并的時候會專門展開。

前提條件:準備多份資料檔案

示例代碼如下:

#城市

#引入pandas子產品

import pandas as pd

#通過清單存儲每個城市的基本資訊

emp1001=['北京',34117,28489,22300,18499,17854]

emp1002=['天津',15139,12870,9931,8828,8390]

emp1003=['深圳',9738,7354,7798,5562,4943]

emp1004=['廣州',8827,7348,7303,7155,6668]

emp1005=['海口',5662,5196,4946,5153,4631]

emp1006=['成都',7944,6838,6416,5865,6074]

emp_list=[emp1001,emp1002,emp1003,emp1004,emp1005,emp1006]

# 設定列索引

columns_value=['城市','2017年','2016年','2015年','2014年','2000年']

# 建立表格

df=pd.DataFrame(emp_list,columns=columns_value)

# # 資料儲存的位址

csv_file = 'E:/pycharm-workpace/data_analyze/num08/city_data.csv'

print('output:',csv_file)

# 将内容存入到CSV檔案

df.to_csv(csv_file)

# 列印剛剛構造的DataFrame

print(df)

使用pandas中concat進行資料整合Concat

按行進行合并

#按行合并

# 整體思路

# 根據df構造了兩個DataFrame變量df1和df2,df的前2行為df1,第3到第4行為df2,

# 接着通過concat()方法合并df1和df2,最終結果放到df3中

示例代碼如下:

#讀取檔案

import pandas as pd

# 檔案位址

csv_file = 'E:/pycharm-workpace/data_analyze/num08/city_data.csv'

df=pd.read_csv(csv_file,index_col='城市')

#構造2個DataFrame,分别讀取檔案的0到2行,和第3到4行。

df1=df[0:2]

df2=df[3:4]

#TODO

#合并2個DataFrame

df3=pd.concat([df1,df2])

print(df3)

使用pandas中concat進行資料整合Concat

按列進行合并

#按列合并

# 整體思路

# 根據df構造了兩個DataFrame變量df1和df2,df的前2行為df1,第3到第4行為df2,

# 接着通過concat()方法合并df1和df2,最終結果放到df3中

#讀取檔案

import pandas as pd

# 檔案位址

csv_file = 'E:/pycharm-workpace/data_analyze/num08/city_data.csv'

df=pd.read_csv(csv_file,index_col='城市')

#構造2個DataFrame,df1包含2017,2016,2015的資料,df2包含2014年、2013年、2012年的資料

df1=df.loc[:,['2017年','2000年']]

df2=df.loc[:,['2016年','2015年']]

#TODO

#合并2個DataFrame

df3=pd.concat([df1,df2],axis=1)

print(df3)

使用pandas中concat進行資料整合Concat

索引值的比對方式

#預設比對方式

# 整體思路:

# 讀取的檔案分别構造了兩個DataFrame,以城市字段作為結果的行索引。

# df1包含了北京和上海兩個城市2017和2016年的房價資料,

# df2包括了北京和成都兩個城市2000和2015年的資料,

# 隻有北京這個城市的資料在兩個DataFrame中都存在

import pandas as pd

# 檔案位址

csv_file = 'E:/pycharm-workpace/data_analyze/num08/city_data.csv'

df=pd.read_csv(csv_file,index_col='城市')

#構造2個DataFrame df1 df2

df1=df[['2017年','2016年']].loc[['北京','成都']]

df2=df[['2015年','2000年']].loc[['北京','深圳']]

#按列進行合并

df4=pd.concat([df1,df2],axis=1)

print(df4)

使用pandas中concat進行資料整合Concat

内連接配接方式比對:

#按列進行合并,行索引取df1 df2的交集

df5=pd.concat([df1,df2],axis=1,join='inner')

print(df5)

使用pandas中concat進行資料整合Concat

繼續閱讀