如何将一列序列转换为带有标题的一行序列?

2024-05-23 14:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是熊猫,我想转换成这样的一个系列:

        RT_mean
   0     27
   1     32
   2     10
   3     9
   .
   .
   .   
   190   89
   191   6

对于具有如下标头的单行数据帧:

       RT_mean1  RT_mean2  RT_mean3  RT_mean4 ... RT_mean189 RT_mean190
   0      27        32        10        9     ...     89          6

我试过做series.transpose(),但这对连续剧不起作用。 感谢您的帮助!你知道吗


Tags: 数据meanseriestransposert单行连续剧标头
3条回答

另一种方法

pd.DataFrame(df.to_numpy().T).add_prefix('RT_mean')

   RT_mean0  RT_mean1  RT_mean2  RT_mean3  RT_mean4  RT_mean5
0        27        32        10         9        89         6

为了最大化通用性,我们可以使用第一个列名的值add_prefix

pd.DataFrame(df.to_numpy().T).add_prefix(df.columns[0])

下面是一个需要重新创建数据帧的示例:

pd.DataFrame([df['RT_mean'].tolist()], columns=df.index.map('RT_mean{}'.format))

   RT_mean0  RT_mean1  RT_mean2  RT_mean3
0        27        32        10         9

另一个涉及set_indextranspose

df.set_index(df.index.map('RT_mean{}'.format)).reset_index(drop=True).T

   RT_mean0  RT_mean1  RT_mean2  RT_mean3
0        27        32        10         9

transposeset_axis

(df.T
   .set_axis(df.index.map('RT_mean{}'.format), axis=1, inplace=False)
   .reset_index(drop=True))

   RT_mean0  RT_mean1  RT_mean2  RT_mean3
0        27        32        10         9

在使用transpose之前,可以在DataFrame构造函数中包装序列。你知道吗

import pandas as pd

s = pd.Series(pd.np.random.randint(0,100, size=50))
pd.DataFrame(s).T.rename(columns={x: 'RT_mean{}'.format(x) for x in s.index})
# returns:
  RT_mean0  RT_mean1  RT_mean2  RT_mean3  RT_mean4  RT_mean5  RT_mean6  \
0       74        96        31         1        36        98        79

相关问题 更多 >