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
s李>NaN
对于SQL心态,考虑<代码>合并<代码> >代码> CONTATA/COD>(即<代码>连接< /代码> <代码>联合<代码> >: