Pandas 重塑数据帧(部分转置)
我有一个类似于以下内容的csv,其中列标题指定时间(小时数): 当我使用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’” 提前
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