我有一个包含 5 列的数据框 - 前 4 列是坐标(x1、x2、y2、y1),最后一列是文本。这些数据来自一个名为 pdfminer 的 PDF 文本提取模块。
data_rows = [ [1, 2, 9, 4, 'A'],
[4, 6, 13, 8, 'B'],
[9, 10, 17, 12, 'C'] ]
df = pd.DataFrame(data_rows)
df
0 1 2 3 4
0 1 2 9 4 A
1 4 6 13 8 B
2 9 10 17 12 C
page = df.pivot(index=[0],columns=[3],values=[4])
从列中删除多索引后:
page
3 4 8 12
0
1 A NaN NaN
4 NaN B NaN
9 NaN NaN C
我遇到挑战的部分是当我需要合并一些行/列时。例如,如果我有以下结构:
3 4 8 9 12
0
1 A NaN D NaN
4 NaN B NaN NaN
7 E NaN NaN NaN
9 NaN NaN F C
我正在尝试进行以下操作 - 将列与公差为 1(第 8 列和第 9 列合并)合并,并将行与公差为 2(第 7 行和第 9 行合并)合并
3 4 8 12
0
1 A D NaN
4 NaN B NaN
7 E F C
有没有一种有效的方法来进行这种组合? combine_first 没有公差参数。 merge_asof 有一个公差参数,但似乎只适用于行。提前致谢!
edit:长话短说 - 如何使用公差参数将倒数第二个表转换为最后一个表,以控制要组合的列/行