Python 如何将熊猫中的列转换为行?
我有这样的想法:Python 如何将熊猫中的列转换为行?,python,pandas,dataframe,row,Python,Pandas,Dataframe,Row,我有这样的想法: Values Time 22 0 45 1 65 2 78 0 12 1 45 2 我想要这个: Time 0 1 2 Val1 22 45 65 Val2 78 12 45 我怎么做 您需要转换数组/矩阵 使用 其中list是您的列表您需要转换数组/矩阵 使用 其中list是您的列表这是使用cumcount创建
Values Time
22 0
45 1
65 2
78 0
12 1
45 2
我想要这个:
Time 0 1 2
Val1 22 45 65
Val2 78 12 45
我怎么做 您需要转换数组/矩阵 使用
其中list是您的列表您需要转换数组/矩阵 使用 其中list是您的列表这是使用cumcount创建索引的pivot 输出:
Time 0 1 2
Val1 22 45 65
Val2 78 12 45
这是使用cumcount创建索引的透视图
输出:
Time 0 1 2
Val1 22 45 65
Val2 78 12 45
如果时间增量为常量、有序且没有缺失值:
DELTA = 3
new_values = [df['Values'].iloc[i*DELTA:i*DELTA+DELTA].values.transpose() for i in range(int(len(df)/DELTA))]
df_new = pd.DataFrame(new_values , index=['Val'+str(i+1) for i in range(len(new_values ))])
print(df_new)
0 1 2
Val1 22 45 65
Val2 78 12 45
这不是一个很好的解决方案,但也许有帮助- 如果您的时间增量为常量、有序且没有缺失值:
DELTA = 3
new_values = [df['Values'].iloc[i*DELTA:i*DELTA+DELTA].values.transpose() for i in range(int(len(df)/DELTA))]
df_new = pd.DataFrame(new_values , index=['Val'+str(i+1) for i in range(len(new_values ))])
print(df_new)
0 1 2
Val1 22 45 65
Val2 78 12 45
这不是一个很好的解决方案,但也许有帮助- @HugoB是的,pivot非常有用。这是一篇信息量很大的文章,虽然它没有涵盖索引创建步骤,但需要完全解决您的问题。非常感谢!我一定会用的!太好了@HugoB是的,pivot非常有用。这是一篇信息量很大的文章,虽然它没有涵盖索引创建步骤,但需要完全解决您的问题。非常感谢!我一定会用的!太好了!