Pandas concat DataFrames - 保持索引的原始顺序
Pandas concat DataFrames - keep original order of index
我正在尝试连接两个数据帧:
df2:
CU Pmt 2017-02-01
h b 15
h d 12
h a 13
和 df1:
CU Pmt 'Total/Max/Min'
h b 20
h d 23
h a 22
a b 16
a d 13
a a 14
这样 df3:
CU Pmt 2017-02-01 2017-02-02
h b 15 20
h d 12 23
h a 13 22
a b NaN 16
a d NaN 13
a a Nan 14
我正在为两个
使用 index_col = [0,1] 的多重索引
这是我的:
date = '2017-02-02'
df1 = pd.read_csv(r'Data17-0217-02-02\Aggregated\Aggregated_Daily_All.csv', usecols=['CU', 'Parameters', 'Total/Max/Min'], index_col =[0,1])
df1 = df1.rename(columns = {'Total/Max/Min':date})
df2 = pd.read_csv(r'Data17-02\MonthlyData\February2017.csv', index_col = [0,1])
df3 = pd.concat([df2, df1], axis=1)
df3.to_csv(r'Data17-02\MonthlyData\February2017.csv')
但是,df3 的结果是:
CU Pmt 2017-02-01 2017-02-02
a a NaN 14
a b NaN 16
a d Nan 13
h a 13 22
h b 15 20
h d 12 23
其中有 CU
和 Pmt
(两个索引列)按字母顺序排列。怎么可能保持原来的顺序,使得所有新日期添加的新索引都添加在底部?
如果 df1.index
的值包含 df2.index
的值,您可以尝试 reindex
:
df3 = pd.concat([df2, df1], axis=1).reindex(df1.index)
print (df3)
2017-02-01 'Total/Max/Min'
CU Pmt
h b 15.0 20
d 12.0 23
a 13.0 22
a b NaN 16
d NaN 13
a NaN 14
我正在尝试连接两个数据帧:
df2:
CU Pmt 2017-02-01
h b 15
h d 12
h a 13
和 df1:
CU Pmt 'Total/Max/Min'
h b 20
h d 23
h a 22
a b 16
a d 13
a a 14
这样 df3:
CU Pmt 2017-02-01 2017-02-02
h b 15 20
h d 12 23
h a 13 22
a b NaN 16
a d NaN 13
a a Nan 14
我正在为两个
使用 index_col = [0,1] 的多重索引这是我的:
date = '2017-02-02'
df1 = pd.read_csv(r'Data17-0217-02-02\Aggregated\Aggregated_Daily_All.csv', usecols=['CU', 'Parameters', 'Total/Max/Min'], index_col =[0,1])
df1 = df1.rename(columns = {'Total/Max/Min':date})
df2 = pd.read_csv(r'Data17-02\MonthlyData\February2017.csv', index_col = [0,1])
df3 = pd.concat([df2, df1], axis=1)
df3.to_csv(r'Data17-02\MonthlyData\February2017.csv')
但是,df3 的结果是:
CU Pmt 2017-02-01 2017-02-02
a a NaN 14
a b NaN 16
a d Nan 13
h a 13 22
h b 15 20
h d 12 23
其中有 CU
和 Pmt
(两个索引列)按字母顺序排列。怎么可能保持原来的顺序,使得所有新日期添加的新索引都添加在底部?
如果 df1.index
的值包含 df2.index
的值,您可以尝试 reindex
:
df3 = pd.concat([df2, df1], axis=1).reindex(df1.index)
print (df3)
2017-02-01 'Total/Max/Min'
CU Pmt
h b 15.0 20
d 12.0 23
a 13.0 22
a b NaN 16
d NaN 13
a NaN 14