我有一个 for 循环生成不同的 pandas 数据帧,我想按顺序保存其值
I have a for loop that generates different pandas dataframes whose values I want to save sequentially
我制作了一个 for 循环,在每次迭代时创建不同的 pandas 数据帧。像这样的东西->
第一次迭代:
index
Letter
Value
0
A
1
1
B
2
2
C
3
第二次迭代:
index
Letter
Value
0
C
5
1
D
3
2
E
1
3
F
2
第三次迭代:
index
Letter
Value
0
A
2
1
F
1
我想将每个数据帧保存到一个新的数据帧中,如下所示:
index
Letter
Value
Value
Value
0
A
1
2
1
B
2
2
C
3
5
3
D
3
4
E
1
5
F
2
1
此外,每次迭代都会出现新的字母,例如,如果 'G' 在交互 'n' 中首次出现,则需要在所需的合并数据框上创建一个新行.
您可以将 Letter
作为每个数据帧的索引,然后将 pd.concat
与 axis=1
一起使用:
dataframes = [df1, df2, df3]
new_df = pd.concat([d.set_index('Letter') for d in dataframes], axis=1)
输出:
>>> new_df
Value Value Value
Letter
A 1.0 NaN 2.0
B 2.0 NaN NaN
C 3.0 5.0 NaN
D NaN 3.0 NaN
E NaN 1.0 NaN
F NaN 2.0 1.0
我制作了一个 for 循环,在每次迭代时创建不同的 pandas 数据帧。像这样的东西-> 第一次迭代:
index | Letter | Value |
---|---|---|
0 | A | 1 |
1 | B | 2 |
2 | C | 3 |
第二次迭代:
index | Letter | Value |
---|---|---|
0 | C | 5 |
1 | D | 3 |
2 | E | 1 |
3 | F | 2 |
第三次迭代:
index | Letter | Value |
---|---|---|
0 | A | 2 |
1 | F | 1 |
我想将每个数据帧保存到一个新的数据帧中,如下所示:
index | Letter | Value | Value | Value |
---|---|---|---|---|
0 | A | 1 | 2 | |
1 | B | 2 | ||
2 | C | 3 | 5 | |
3 | D | 3 | ||
4 | E | 1 | ||
5 | F | 2 | 1 |
此外,每次迭代都会出现新的字母,例如,如果 'G' 在交互 'n' 中首次出现,则需要在所需的合并数据框上创建一个新行.
您可以将 Letter
作为每个数据帧的索引,然后将 pd.concat
与 axis=1
一起使用:
dataframes = [df1, df2, df3]
new_df = pd.concat([d.set_index('Letter') for d in dataframes], axis=1)
输出:
>>> new_df
Value Value Value
Letter
A 1.0 NaN 2.0
B 2.0 NaN NaN
C 3.0 5.0 NaN
D NaN 3.0 NaN
E NaN 1.0 NaN
F NaN 2.0 1.0