我是熊猫新手。我正在尝试使用pandas(ExcelFile / read_csv)读取如下所示的excel文件:
当我执行以下操作时:
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文件时完成吗?
答案 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