Pandas 重塑数据帧(部分转置)

Pandas 重塑数据帧(部分转置),pandas,dataframe,Pandas,Dataframe,我有一个类似于以下内容的csv,其中列标题指定时间(小时数): 当我使用 df = pd.read_csv(open('VirusLevels.csv', 'r'), index_col=[0,1], header=0) Pandas创建一个数据框,其中包含索引日期和位置以及列名1、2和3 我需要如下所示对其进行重塑,其中日期和时间是索引,位置是列标题: 我尝试过很多事情,也跟踪过很多兔子洞,但都没有成功。我能找到的最恰当的例子建议如下,但它不起作用(说“KeyError:‘Day’” 提前

我有一个类似于以下内容的csv,其中列标题指定时间(小时数):

当我使用

df = pd.read_csv(open('VirusLevels.csv', 'r'), index_col=[0,1], header=0)
Pandas创建一个数据框,其中包含索引日期和位置以及列名1、2和3

我需要如下所示对其进行重塑,其中日期和时间是索引,位置是列标题:

我尝试过很多事情,也跟踪过很多兔子洞,但都没有成功。我能找到的最恰当的例子建议如下,但它不起作用(说“KeyError:‘Day’”

提前感谢您的帮助。

请尝试:

df = pd.read_csv('VirusLevels.csv', index_col=[0,1])
df.rename_axis(columns='Time').stack().unstack('Location')

# or
# df.rename_axis('Time',axis='columns').stack().unstack('Location') 
输出:

Location              A         B         C
Day      Time                              
1/1/2021 1     0.345307  0.099403  0.474077
         2     0.299947  0.853091  0.352472
         3     0.400975  0.599249  0.743099
1/2/2021 1     0.660258  0.003976  0.295406
         2     0.425434  0.953433  0.418783
         3     0.421021  0.844761  0.369561

出于某种原因,我得到了以下错误,尽管我看到“columns”是df.rename_axis方法的合法keword参数。不确定原因:TypeError:rename_axis()得到了一个意外的关键字参数'columns',所以我做了以下操作,它成功了。df=df_raw.rename_axis('Time',axis='columns').stack().unstack('Location')仅供参考,我认为你应该得到奖励(你基本上把我带到了那里,只需要调整参数)。但如果我不确定您的特定语法是否有效,我也不想将其标记为答案。因此,如果您编辑对我有用的答案,我会将您的答案标记为答案。@EmilyBeth谢谢,已更新。对于子孙后代,如果您发布此CSV文件的内容,而不是它的图像,将有所帮助。我尝试过,但找不到方法。救命啊!您可以复制并粘贴原始文本文件(即,使用记事本或其他文本编辑器打开它)谢谢您的建议。如果有更好的格式化方法,请让我知道或随意调整。再次感谢。。。
df = pd.read_csv('VirusLevels.csv', index_col=[0,1])
df.rename_axis(columns='Time').stack().unstack('Location')

# or
# df.rename_axis('Time',axis='columns').stack().unstack('Location') 
Location              A         B         C
Day      Time                              
1/1/2021 1     0.345307  0.099403  0.474077
         2     0.299947  0.853091  0.352472
         3     0.400975  0.599249  0.743099
1/2/2021 1     0.660258  0.003976  0.295406
         2     0.425434  0.953433  0.418783
         3     0.421021  0.844761  0.369561