Python 串联和分组填充NaN值

Python 串联和分组填充NaN值,python,pandas,dataframe,group-by,pandas-groupby,Python,Pandas,Dataframe,Group By,Pandas Groupby,我有这个数据框: df: companycode name address A B C ... 1234 asd qwe,56 Tyh 123 923 1234 asd qwe,56 Zfhs 4828 01992 6472 yui iop,56 Retgh 8484 8484 ... 我还有一个类似的: df2: companyc

我有这个数据框:

df:
companycode    name    address    A     B     C     ...
1234           asd     qwe,56     Tyh   123   923
1234           asd     qwe,56     Zfhs  4828  01992
6472           yui     iop,56     Retgh 8484  8484
...
我还有一个类似的:

df2:
companycode    A     B     C       ...
1234           Jid   4123  141
6472           Low   1312  3234
...
companycode    name    address    A     B     C     ...
1234           asd     qwe,56     Tyh   123   923
1234           asd     qwe,56     Zfhs  4828  01992
6472           yui     iop,56     Retgh 8484  8484
1234           asd     qwe,56     Jid   4123  141
6472           yui     iop,56     Low   1312  3234
...
单个公司代码的名称和地址始终相同

我希望以一种最终看起来像这样的方式连接、连接、合并或附加它们:

df2:
companycode    A     B     C       ...
1234           Jid   4123  141
6472           Low   1312  3234
...
companycode    name    address    A     B     C     ...
1234           asd     qwe,56     Tyh   123   923
1234           asd     qwe,56     Zfhs  4828  01992
6472           yui     iop,56     Retgh 8484  8484
1234           asd     qwe,56     Jid   4123  141
6472           yui     iop,56     Low   1312  3234
...
由于单个公司代码的名称和地址总是相同的,因此我基本上希望将df2与axis=0中的df合并,并将原始df公司代码中的名称和地址拉到新行。写起来很混乱,但我认为它在视觉上效果更好


你知道我该怎么做吗?

pd.concat
后面跟着一个
groupby
操作就可以了

df = pd.concat([df1, df2], 0, ignore_index=True)\
                          .groupby('companycode').ffill()
df

       A     B     C address  companycode name
0    Tyh   123   923  qwe,56         1234  asd
1   Zfhs  4828  1992  qwe,56         1234  asd
2  Retgh  8484  8484  iop,56         6472  yui
3    Jid  4123   141  qwe,56         1234  asd
4    Low  1312  3234  iop,56         6472  yui

  • ignore_index=True
    设置为在连接时创建新索引
  • 串联在
    df2
    的列中留下以前不存在的
    NaN
  • companycode
    执行
    groupby
    操作,然后对
    ffill
    执行
    groupby
    操作,以使用来自同一组的正确值填充这些
    NaN
    s

对于SQL心态,考虑<代码>合并<代码> >代码> CONTATA/COD>(即<代码>连接< /代码> <代码>联合<代码> >: