在同一列中,在同一df-Python中合并单元格



我正在尝试将两个单元格合并在一起。原因是"机箱"下的每个单元都应该是字母数字(ABCD123456(,但提供的PO偶尔会将最后一个数字转移到下一行(所述行上没有其他数据(,使数据看起来像这样。例如,我最初试图创建一个查看单元格的语句,确认它不是一个数字,然后查看下一个单元格,并将两者合并。从来没有得到过任何结果。然后我决定复制数据帧,移动第二个数据帧(因此丢失的数字在同一行(,并将它们合并在一起。这就是我现在的处境。错误消息这是我在Python中的第一段真正的代码,所以我很确定我在做低效的事情,所以无论如何都要让我知道我可以改进的地方。

目前我有这个。。。

其他列ABC>//tr>楠>td>456楠Nan
Col1 机箱其他列2…
ABCD1234123
6
Nan WXYZ987654 GHI
QRSTU654987789
Nan MNOP999999 XYZ

Chassis列创建一个虚拟组并合并该组的行:

# Convert 'NaN' string to pd.NA
df = df.replace('Nan', pd.NA)
cols = df.columns.difference(['Chassis'])
m = df[cols].any(1)
df = df.assign(Chassis=df.groupby(m.cumsum())['Chassis'] 
.transform('sum')).loc[m].reset_index(drop=True)
print(df)
# Output
Col1      Chassis Other Columns Other Columns 2
0  <NA>   ABCD123456           ABC             123
1  <NA>   WXYZ987654           GHI             456
2  <NA>  QRSTU654987          <NA>             789
3  <NA>   MNOP999999           XYZ            <NA>

设置:

import pandas as pd
import numpy as np
data = {'Col1': ['Nan', 'Nan', 'Nan', 'Nan', 'Nan'],
'Chassis': ['ABCD12345', '6', 'WXYZ987654', 'QRSTU654987', 'MNOP999999'],
'Other Columns': ['ABC', 'Nan', 'GHI', 'Nan', 'XYZ'],
'Other Columns 2': ['123', 'Nan', '456', '789', 'Nan']}
df = pd.DataFrame(data)
print(df)
# Output
Col1      Chassis Other Columns Other Columns 2
0  Nan    ABCD12345           ABC             123
1  Nan            6           Nan             Nan
2  Nan   WXYZ987654           GHI             456
3  Nan  QRSTU654987           Nan             789
4  Nan   MNOP999999           XYZ             Nan

相关内容

  • 没有找到相关文章

最新更新