我有N个具有不同列数的数据框,我想获得一个包含2列x和Y的数据框,其中x是输入数据框的列中的数据,Y是列名本身。我有很多这样的数据帧需要连接(N大约为10 ^ 2),因此效率是优先考虑的。也欢迎采用麻木的方式而不是熊猫的方式。
例如,
df1:
one two
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
df2:
three four
0 NaN
1 None f
2 g
3 6 7
Final Output Dataframe:
x y
0 1 one
1 2 one
2 3 one
3 4 one
4 5 one
5 a two
6 b two
7 c two
8 d two
9 e two
10 6 three
11 f four
12 g four
13 7 four
注意:我忽略了最终数据框中的空字符串,NaN和None。
答案 0 :(得分:0)
IIUC,您可以在确认之前使用melt()
:
final=(pd.concat([df1.melt(),df2.dropna().melt()]).
rename(columns={'variable':'y','value':'x'}). reindex(['x','y'],axis=1))
print(final)