紧凑地合并多个部分重叠的数据帧,而不需要额外的行和nan

2024-05-18 07:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆部分重叠(在行和列中)的数据帧,示例如下:

df1 = pandas.DataFrame({'a':['1','2','3'], 'b':['a','b','c']})
df2 = pandas.DataFrame({'c':['q','w','e','r','t','y'], 'b':['a','b','c','d','e','f']})
df3 = pandas.DataFrame({'a':['4','5','6'], 'c':['r','t','y']})
...etc.

我想用尽可能少的洞把它们合并在一起

连续的外部盲合并总是会产生一些(不幸的是对我没用的)空洞和重复填充的变体:

     a    b  c
0    1    a  q
1    2    b  w
2    3    c  e
3  NaN    d  r
4  NaN    e  t
5  NaN    f  y
6    4  NaN  r
7    5  NaN  t
8    6  NaN  y

我的期望输出是上面给定的a、b和c(列顺序无关紧要):

   a  b  c
0  1  a  q
1  2  b  w
2  3  c  e
3  4  d  r
4  5  e  t
5  6  f  y

我希望NAN被视为从下一个数据帧插入数据的位置,而不是阻塞它

我在这里不知所措。有没有什么方法可以从总体上实现这一点


Tags: 数据方法示例dataframepandas顺序etc变体
1条回答
网友
1楼 · 发布于 2024-05-18 07:33:44

我不能授权的速度,但排序后与关键,似乎为您的样本数据工作

df.apply(lambda x : sorted(x,key=pd.isnull)).dropna(0)
Out[47]: 
     a  b  c
0  1.0  a  q
1  2.0  b  w
2  3.0  c  e
3  4.0  d  r
4  5.0  e  t
5  6.0  f  y

相关问题 更多 >