Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将熊猫中的列转换为行?_Python_Pandas_Dataframe_Row - Fatal编程技术网

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非常有用。这是一篇信息量很大的文章,虽然它没有涵盖索引创建步骤,但需要完全解决您的问题。非常感谢!我一定会用的!太好了!