【发布时间】:2022-01-17 14:45:21
【问题描述】:
我试图弄清楚如何对齐存储在两个单独的dictionaries 中的许多DataFrames 的行和列。
为了说明这一点,我创建了四个DataFramesdf1、df2、df3和df4,我将它们存储在dictionaries中:
df1:
Dates ID1 ID2 ID3 ID4 ID6
0 2021-01-01 0.0 0.0 0.1 0.0 0.0
1 2021-01-03 0.0 0.0 0.0 0.0 0.0
2 2021-01-04 0.1 0.1 0.0 0.1 0.1
3 2021-01-05 0.2 0.2 0.2 0.2 0.2
4 2021-01-06 0.1 0.1 0.4 0.1 0.1
df2:
Dates ID1 ID2 ID3 ID4 ID6
0 2021-01-01 0.00 0.0 0.1 0.0 0.0
1 2021-01-03 0.20 0.3 0.0 0.0 0.0
2 2021-01-04 0.15 -0.1 0.4 -0.1 -0.1
3 2021-01-05 0.20 -0.2 -0.2 0.3 0.2
4 2021-01-06 0.10 0.1 0.2 -0.1 0.1
df3:
Dates ID2 ID4 ID5 ID6
0 2021-01-01 3 1.0 4 2.0
1 2021-01-02 6 2.4 3 1.5
2 2021-01-03 3 -2.0 3 2.0
3 2021-01-04 -1 1.0 -3 -2.0
4 2021-01-05 3 4.0 4 3.0
df4:
Dates ID2 ID4 ID5 ID6
0 2021-01-02 6 2.4 3 1.5
1 2021-01-03 3 -2.0 3 2.0
2 2021-01-04 -1 1.0 -3 -2.0
3 2021-01-07 3 4.0 4 3.0
为了重现性:
import pandas as pd
df1 = pd.DataFrame({
'Dates':['2021-01-01', '2021-01-03', '2021-01-04', '2021-01-05', '2021-01-06'],
'ID1':[0,0,0.1,0.2,0.1],
'ID2':[0,0,0.1,0.2,0.1],
'ID3':[0.1,0,0,0.2,0.4],
'ID4':[0,0,0.1,0.2,0.1],
'ID6':[0,0,0.1,0.2,0.1]})
df2 = pd.DataFrame({
'Dates':['2021-01-01', '2021-01-03', '2021-01-04', '2021-01-05', '2021-01-06'],
'ID1':[0,0.2,0.15,0.2,0.1],
'ID2':[0,0.3,-0.1,-0.2,0.1],
'ID3':[0.1,0,0.4,-0.2,0.2],
'ID4':[0,0,-0.1,0.3,-0.1],
'ID6':[0,0,-0.1,0.2,0.1]})
df3 = pd.DataFrame({
'Dates':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'ID2':[3,6,3,-1,3],
'ID4':[1,2.4,-2,1,4],
'ID5':[4,3,3,-3,4],
'ID6':[2,1.5,2,-2,3]})
df4 = pd.DataFrame({
'Dates':['2021-01-02', '2021-01-03', '2021-01-04', '2021-01-07'],
'ID2':[6,3,-1,3],
'ID4':[2.4,-2,1,4],
'ID5':[3,3,-3,4],
'ID6':[1.5,2,-2,3]})
dic1 = dict()
dic1['df1'] = df1
dic1['df2'] = df2
dic2 = dict()
dic2['df3'] = df3
dic2['df4'] = df4
我想得到的是:
dic1['df1']:
Dates ID2 ID4 ID6
0 2021-01-03 0.0 0.0 0.0
1 2021-01-04 0.1 0.1 0.1
dic1['df2']:
Dates ID2 ID4 ID6
0 2021-01-03 0.3 0.0 0.0
1 2021-01-04 -0.1 -0.1 -0.1
dic2['df3']:
Dates ID2 ID4 ID6
0 2021-01-03 3 -2 2
1 2021-01-04 -1 1 -2
dic2['df4']:
Dates ID2 ID4 ID6
0 2021-01-03 3 -2 2
1 2021-01-04 -1 1 -2
我尝试对齐两个dictionaries 的行和列,这样我只包括不同dictionaries 的所有DataFrames 中包含的列。 dictionaries 中是否有有效的命令来处理这个问题?
【问题讨论】:
标签: python pandas dictionary