Pandas 合并行作为 header 信息
Pandas combining rows as header info
这就是我使用 pandas
读取和创建数据框的方式
def get_sheet_data(sheet_name='SomeName'):
df = pd.read_excel(f'{full_q_name}',
sheet_name=sheet_name,
header=[0,1],
index_col=0)#.fillna(method='ffill')
df = df.swapaxes(axis1="index", axis2="columns")
return df.set_index('Product Code')
打印这个表格化给我(这可能会有数百列):
我似乎无法将前两行添加到 header,我试过:
python:pandas - How to combine first two rows of pandas dataframe to dataframe header?
我在每一点上都失败了。我认为这是因为多索引,不一定是轴交换?但是使用:
https://pandas.pydata.org/docs/reference/api/pandas.MultiIndex.html
现在有点让我头疼。请帮我将这两行添加到 header?
df.columns 的输出量很大所以我把它砍掉了很多:
Index(['Product Code','Product Narrative\nHigh-level service description','Product Name','Huawei Product ID','Type','Bill Cycle Alignment',nan,'Stackable',nan,
并以:
结尾
nan], dtype='object')
我们创建新的列名并将它们设置为df.columns,新的列名是通过连接3个多索引headers和DataFrame的第一行生成的。
df.columns = ['_'.join(i) for i in zip(df.columns.get_level_values(0).tolist(), df.columns.get_level_values(1).tolist(), df.iloc[0,:].replace(np.nan,'').tolist())]
这就是我使用 pandas
读取和创建数据框的方式def get_sheet_data(sheet_name='SomeName'):
df = pd.read_excel(f'{full_q_name}',
sheet_name=sheet_name,
header=[0,1],
index_col=0)#.fillna(method='ffill')
df = df.swapaxes(axis1="index", axis2="columns")
return df.set_index('Product Code')
打印这个表格化给我(这可能会有数百列):
我似乎无法将前两行添加到 header,我试过:
python:pandas - How to combine first two rows of pandas dataframe to dataframe header?
我在每一点上都失败了。我认为这是因为多索引,不一定是轴交换?但是使用: https://pandas.pydata.org/docs/reference/api/pandas.MultiIndex.html 现在有点让我头疼。请帮我将这两行添加到 header?
df.columns 的输出量很大所以我把它砍掉了很多:
并以:Index(['Product Code','Product Narrative\nHigh-level service description','Product Name','Huawei Product ID','Type','Bill Cycle Alignment',nan,'Stackable',nan,
nan], dtype='object')
我们创建新的列名并将它们设置为df.columns,新的列名是通过连接3个多索引headers和DataFrame的第一行生成的。
df.columns = ['_'.join(i) for i in zip(df.columns.get_level_values(0).tolist(), df.columns.get_level_values(1).tolist(), df.iloc[0,:].replace(np.nan,'').tolist())]