【发布时间】:2020-01-30 21:29:51
【问题描述】:
我有一个小型数据框 - 六行(不包括标题)和 53 列(商店名称,以及过去一年的其余每周销售额)。每行包含一个特定的商店,每列包含商店的名称和每周的销售额。我需要转置数据,使周显示为行,商店显示为列,而它们的销售额显示为行。
生成输入数据:
df_store = pd.read_excel(SourcePath+SourceFile, sheet_name='StoreSales', header=0, usecols=['StoreName'])
# Number rows of all irrelevant stores.
row_numbers = [x+1 for x in df_stores[(df_store['StoreName'] != 'Store1') & (df_store['StoreName'] != 'Store2')
& (df_store['StoreName'] !='Store3')].index]
# Read in entire Excel file, skipping the rows of irrelevant stores.
df_store = pd.read_excel(SourcePath+SourceFile, sheet_name='StoreSales', header=0, usecols = "A:BE",
skiprows = row_numbers, converters = {'StoreName' : str})
# Transpose dataframe
df_store_t = df_store.transpose()
我的输出将索引号放在每个商店名称上方(0 到 5),然后每列以 StoreName(一周以上)开始,然后是每个商店名称。然而,我不能通过他们的名字来操纵他们。
有没有办法清除这些索引号,以便我可以直接使用生成的列名(例如,将“StoreName”重命名为“WeekEnding”并引用每个存储列(“Store1”、“Store2”、等等?)
【问题讨论】:
-
您能否提供有关您的数据框和预期输出的更多信息?
标签: pandas dataframe transpose