Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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 在dataframe中转置一个子集列(不是groupby,需要创建新列)_Python_Dataframe_Pandas_Transpose - Fatal编程技术网

Python 在dataframe中转置一个子集列(不是groupby,需要创建新列)

Python 在dataframe中转置一个子集列(不是groupby,需要创建新列),python,dataframe,pandas,transpose,Python,Dataframe,Pandas,Transpose,我有一个表,有两列,第一列是站点的标识,第二列是24小时内每小时的状态数。因此,对于每个站点,我有24(行)x2(列)数据。如何将第二列(每个站点24行数据)转换为包含24+1列和站点标记的行 通过使用loop创建新行,我找到了一个简单的解决方案: for i in range(numberOfsites): i1 = i*24 i2 = i1 + 24 newLine = DataFrame(sitesData,index=list(range(i1,i2)), col

我有一个表,有两列,第一列是站点的标识,第二列是24小时内每小时的状态数。因此,对于每个站点,我有24(行)x2(列)数据。如何将第二列(每个站点24行数据)转换为包含24+1列和站点标记的行

通过使用loop创建新行,我找到了一个简单的解决方案:

for i in range(numberOfsites):
    i1 = i*24
    i2 = i1 + 24
    newLine = DataFrame(sitesData,index=list(range(i1,i2)), columns=["siteState"]).T
有人能提出另一个更简单的解决方案吗?先谢谢你

原始数据:(感谢安迪·海登提供的数据)

所需数据:

              0  1  2
  site_index
  1           a  b  a
  2           a  a  b

虽然这感觉有点粗糙,但您可以使用:


这也可以使用…

什么是
sitesData
(为什么您不能将其转置)?我正在努力理解您在这里的确切要求,首先,您编写的代码只创建一个数据帧(换行符),可能这不是您想要的。你能举个假数据的例子吗?因为sitesData包含两列,第一列是site indice,第二列是siteState。SiteData包含n个站点信息,因此有n*24行数据。对于每个站点,siteData中有24行。我不能简单地转换站点数据。我在回答中给出了一些虚拟数据,因为这是我对您所问问题的最佳猜测:)请您编辑您的问题以显示您的实际输入数据和预期输出数据,好吗?
              0  1  2
  site_index
  1           a  b  a
  2           a  a  b
In [11]: df
Out[11]:
   site_index state
0           1     a
1           1     b
2           1     a
3           2     a
4           2     a
5           2     b

In [12]: g = df.groupby('site_index')

In [13]: g.apply(lambda x: x.state.reset_index(drop=True).T)
Out[13]:
            0  1  2
site_index
1           a  b  a
2           a  a  b