创建单行pandas数据帧

时间:2018-06-01 11:17:19

标签: python pandas dataframe

我有一个像这样的数据框 -

                 0
0            a  43
1            b  630
2            r  587
3            i  462
4            g  153
5            t  266

我想创建一个看起来像这样的新数据框 -

     a         b     r       i     g        t
0    43       630   587    462    153      266

3 个答案:

答案 0 :(得分:2)

您可以通过df.Tdf.transpose()转换您的数据框:

df = pd.DataFrame([['A', 1], ['B', 2], ['C', 3], ['D', 4], ['E', 5]],
                  columns=['col1', 'col2'])

print(df)

  col1  col2
0    A     1
1    B     2
2    C     3
3    D     4
4    E     5

res = df.set_index('col1').T

结果:

print(res)

col1  A  B  C  D  E
col2  1  2  3  4  5

答案 1 :(得分:1)

如果您只有一个格式为a 43的列,则应该有效:

df.columns = ['col']
df = pd.DataFrame(df.col.str.split(' ',1).tolist(), columns = ['col1','col2']).T.reset_index(drop=True)
df = df.rename(columns=df.iloc[0]).drop(df.index[0])

输入:

df = pd.DataFrame(data=[
     ['a 43',],
     ['b 630'],
     ['r 587']],
columns=['col'])

     col
0   a 43
1  b 630
2  r 587

输出:

    a    b    r
1  43  630  587

答案 2 :(得分:1)

使用split进行列表推导创建二维数组,然后按构造函数创建新Dataframe

a = np.array([x.split() for x in df['0']])

df = pd.DataFrame([a[:, 1]], columns=a[:, 0])
print (df)
    a    b    r    i    g    t
0  43  630  587  462  153  266