Python 如何重命名熊猫中未命名的列?

Python 如何重命名熊猫中未命名的列?,python,pandas,dataframe,tabula,Python,Pandas,Dataframe,Tabula,我有一个pdf文件,里面有一张桌子,我想把那张桌子做成熊猫。提取pdf表格是出了名的困难,但我发现tabla工作得最好。这绝对是我见过的最好的,尽管还不完美。我有这个pdf表格: 请注意表的标题,以及它们有时是如何运行到下一行的,通常都不是很好。我在前面提到了真正的问题,因为我所看到的所有解决方案首先都需要一种更好的方法来创建数据帧。这个数据框是我能得到的最好的,但是如果你知道如何从表格中得到一个更好的,请告诉我 我使用tabla py并运行以下代码: holdingsDF = tbla.re

我有一个pdf文件,里面有一张桌子,我想把那张桌子做成熊猫。提取pdf表格是出了名的困难,但我发现tabla工作得最好。这绝对是我见过的最好的,尽管还不完美。我有这个pdf表格:

请注意表的标题,以及它们有时是如何运行到下一行的,通常都不是很好。我在前面提到了真正的问题,因为我所看到的所有解决方案首先都需要一种更好的方法来创建数据帧。这个数据框是我能得到的最好的,但是如果你知道如何从表格中得到一个更好的,请告诉我

我使用tabla py并运行以下代码:

holdingsDF = tbla.read_pdf(fileName, nospreadsheet=True)
有很多选择,我不知道所有的选择,但这似乎是我能做的最好的,在摆弄了这些选择之后。由此产生的DF是:

         Unnamed: 0                  Unnamed: 1      Unnamed: 2 Identifier Unnamed: 4 Curren Unnamed: 6 TAG0 Strategy  
0        Asset Type                        Name      Identifier        NaN   Quantity    NaN      Price           NaN  
1               NaN                         NaN             NaN       Type        NaN     cy        NaN          Name  
2            Equity     Akamai Technologies Inc  AKAM US Equity     TICKER    (5,830)    USD     65.000          AKAM   
3  Convertible Bond             AKAM 0 02/15/19    US00971TAG67       ISIN  1,595,000    USD    100.875          AKAM   
4            Equity  Advanced Micro Devices Inc   AMD US Equity     TICKER  (181,500)    USD     13.490           AMD  
5  Convertible Bond          AMD 2 1/8 09/01/26    US007903BD80       ISIN  1,650,000    USD    185.500           AMD 
如果你看一下,你可以看到头已经在前三行中被分割了。我该如何解决这个问题?有没有什么聪明、优雅的解决方案,可以为每一列取三个名称中的“最佳”一个,并将其作为列名


谢谢

这是一个纯熊猫解决方案-假设数据帧的读取方式与下面粘贴的完全相同

df.columns = df.columns.str.replace('Unnamed.*', '') + \
             df.iloc[0].fillna('') + \
             df.iloc[1].fillna('')

df.drop([0,1], inplace=True)


1        Asset Type                        Name      Identifier  \
2            Equity     Akamai Technologies Inc  AKAM US Equity   
3  Convertible Bond             AKAM 0 02/15/19    US00971TAG67   
4            Equity  Advanced Micro Devices Inc   AMD US Equity   
5  Convertible Bond          AMD 2 1/8 09/01/26    US007903BD80   

1 IdentifierType   Quantity Currency    Price TAG0 StrategyName  
2         TICKER    (5,830)      USD   65.000              AKAM  
3           ISIN  1,595,000      USD  100.875              AKAM  
4         TICKER  (181,500)      USD   13.490               AMD  
5           ISIN  1,650,000      USD  185.500              None  

只需键入所有列名,可能比提出一个编程解决方案还要快。我得到了一个警告(Python 3.4,Pandas 0.16.2)
FutureWarning:使用“+”为集合union提供索引是不推荐的
我尝试使用“union”,但出现了一个错误。有什么帮助吗?升级到0.19或尝试将.values放在所有值的末尾