[英]Combining csv files columns together Pandas Python
我正在嘗試組合file1-3.csv
以便獲得預期的結果。 我想將所有 3 個文件上的所有行組合在一起,但忽略第一列,因為它在所有 3 個文件上都是相同的。 我怎么能用 pandas 做到這一點。
代碼:
import pandas as pd
file1 = pd.read_csv('STDOutputs_Q1.csv')
file2 = pd.read_csv('STDOutputs_Q2.csv')
file3 = pd.read_csv('STDOutputs_Q3.csv')
內部文件1.csv
element,LNPT,SNPT
[ 2. 2. 30.],89,60
[ 2. 2. 40.],999,77
里面文件2.csv
element,MxU,MxD,TT
[ 2. 2. 30.],17127,-3,0
[ 2. 2. 40.],17141,-40,2
里面文件3.csv
element,TNT
[ 2. 2. 30.],1000
[ 2. 2. 40.],30
預期成績:
element,LNPT,SNPT,MxU,MxD,TT,TNT
[ 2. 2. 30.],89,60,17127,-3,0,1000
[ 2. 2. 40.],999,77,17141,-40,2,30
您可以使用pd.join
像:
q1_2 = file1.join(file2, lsuffix='_Q1', rsuffix='_Q2')
file1-3 = q1_2.join(file3, rsuffix='_Q3')
或者,如果所有三個數據框的“元素”列都相同,並且沒有沖突的列名,則可以使用pd.merge
:
q1_2 = file1.merge(file2)
file1-3 = q1_2.merge(file3)
您可以使用 Umar 的concat()
想法,但需要添加axis=1
:
pd.concat([d.set_index('element') for d in [file1,file2,file3]], axis=1)
# element LNPT SNPT MxU MxD TT TNT
# [ 2. 2. 30.] 89 60 17127 -3 0 1000
# [ 2. 2. 40.] 999 77 17141 -40 2 30
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.