Pandas Excel Merged Cell Parsing重命名未命名列

时间:2015-12-08 04:52:47

标签: python excel pandas

我是熊猫新手。我正在尝试使用pandas(ExcelFile / read_csv)读取如下所示的excel文件:

Sample data

当我执行以下操作时:

xlsx = pd.ExcelFile("fruit.xlsx")
df = pd.read_excel(xlsx, 'Sheet1', keep_default_na=False)
print df

我得到了输出:

   Sno  Apple  Unnamed: 2  Mango  Unnamed: 4
0    1   True          13  False           6
1    2  False           4   True           8

但是,我想得到输出:

   Sno  Apple  AppleCount  Mango  MangoCount
0    1   True          13  False           6
1    2  False           4   True           8

我想将带有前缀的未命名列重命名为Previous列的名称,然后将'Count'附加到该名称。有没有办法做到这一点?这可以在读取excel文件时完成吗?

2 个答案:

答案 0 :(得分:1)

你可以试试这个 获取列值headers = df.dtypes.index

    new_column_name = headers[1] + "Count"
    df.rename(columns = {headers[2] : new_column_name} , inplace = True)

因此你可以编写逻辑

答案 1 :(得分:0)

使用列表理解你可以用:

new_columns = [df.columns[i-1] + "Count" if df.columns[i].find("Unnamed") >= 0 else df.columns[i] for i in range(len(df.columns))]

In [20]: new_columns 
Out[20]: ['Sno', 'Apple', 'AppleCount', 'Mango', 'MangoCount']

df.columns = new_columns

In [23]: df
Out[23]:
   Sno  Apple  AppleCount  Mango  MangoCount
0    1   True          13  False           6
1    2  False           4   True           8