获取Excel中的单元格以使用Python与不同行中的单元格合并?

时间:2017-09-04 12:15:58

标签: python excel pandas csv merge

我尝试使用Pandas创建数据框,但由于数据集的结构,我遇到了问题。

我的数据集标题分为两个不同的行。我的问题是尝试将这些行合并在一起,让每个单元格与其下面的单元格合并。

这是我的数据集的示例 -

Client 1     | Client 2
------------ | ------------
Grand Total  | Grand Total
------------ | ------------
$50          | $100

我想做的事情 -

Client 1 Grand Total | Client 2 Grand Total
-------------------- | --------------------
$50                  | $100

我在网上找到的所有内容都谈到将多行数据合并到一行,而不是将不同行中的单元合并。

如何让单元格与不同行中的其他单元格合并?我显然在寻找一个我不编辑实际数据集的解决方案。更重要的是,我不需要对标题进行硬编码的解决方案。

1 个答案:

答案 0 :(得分:0)

您需要从columns创建MultiIndex。如果所有值都是字符串,则最简单的是map

df = pd.DataFrame({('Client 1', 'Grand Total'): {0: '$50'}, 
                   ('Client 2', 'Grand Total'): {0: '$100'}})

print (df)
     Client 1    Client 2
  Grand Total Grand Total
0         $50        $100

print (df.columns)
MultiIndex(levels=[['Client 1', 'Client 2'], ['Grand Total']],
           labels=[[0, 1], [0, 0]])

df.columns = df.columns.map(' '.join)

print (df)
  Client 1 Grand Total Client 2 Grand Total
0                  $50                 $100


print (df.columns.tolist())
['Client 1 Grand Total', 'Client 2 Grand Total']