Python 使用一列值将数据帧从m行n列重塑为m x n行
将数据帧从m行x n列重塑为m x n行单列Python 使用一列值将数据帧从m行n列重塑为m x n行,python,pandas,dataframe,data-science,Python,Pandas,Dataframe,Data Science,将数据帧从m行x n列重塑为m x n行单列 Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2000 12.7 13.8 13.3 12.6 12.8 12.3 13.4 14 13 12.8 13 13.2 2001 13.8 13.7 13.8 13.9 13.4 14.2 14.4 15.6 15.2 16 15.9
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2000 12.7 13.8 13.3 12.6 12.8 12.3 13.4 14 13 12.8 13 13.2
2001 13.8 13.7 13.8 13.9 13.4 14.2 14.4 15.6 15.2 16 15.9 17
2002 16.5 16 16.6 16.7 16.6 16.7 16.8 17 16.3 15.1 17.1 16.9
到
然后简单地将“年”+“月”列组合成一个日期字段,并绘制数据列
我对这件事很生疏。读取各种熔化、重塑、堆叠选项的速度令人沮丧。您可以对熊猫的数据帧使用
melt
,如下所示:
df = pd.melt(df, id_vars=['Year'])
id\u vars
中未指定的所有其他列名将为您融化为一列如其他人所述,melt
将在您的数据框中作为一列时起作用。如果年份是您的索引(很难说,但可能基于您的维度),您可以使用stack
和reset\u index
to_datetime
可以将两列组合起来创建日期时间,但需要先指定一个日期值:
df.columns.name = 'Month'
df = df.stack().reset_index()
df['Date'] = pd.to_datetime(df[['Year', 'Month']].assign(Day=1))
新的日期列可用于绘制您喜欢的数据包。s=df.melt('Year')此速记很有用。谢谢。:)谢谢我的数据框有一列“年”。这是一个方便的技巧链知道。
df.columns.name = 'Month'
df = df.stack().reset_index()
df['Date'] = pd.to_datetime(df[['Year', 'Month']].assign(Day=1))