如何将第二行提取到数据帧的单独列中?

时间:2019-03-07 16:15:31

标签: python-3.x pandas

我有一个如下所示的df:

col1
aaa
1
bbb
2
ccc
3

如何从数据框的第二行中拉出数据并使其成为自己的列,如下所示:

col1    col2
aaa     1
bbb     2
ccc     3

我尝试过:

df[::1]

因为第二行的索引为1,但是我没有返回要查找的数据。

4 个答案:

答案 0 :(得分:6)

使用reshape

pd.DataFrame(df.col1.values.reshape(-1,2),columns=['c1','c2'])

完整示例:

import pandas as pd

df = pd.DataFrame({
    'col1': ['aaa','1','bbb','2','ccc','3']
})

df = pd.DataFrame(df.col1.values.reshape(-1,2),columns=['c1','c2'])
df.c2 = df.c2.astype(int) # optional to convert col to int

print(df)

返回

    c1  c2
0   aaa 1
1   bbb 2
2   ccc 3

答案 1 :(得分:1)

虽然不如重塑那么优雅(而且快!),但我认为可读的替代方法是:

df = pd.DataFrame({
    'col1': df.col1[::2].values,
    'col2': df.col1[1::2].astype(int)
})

答案 2 :(得分:0)

尝试:

df['col1'] = df['col1'][0:][::2]
df['col2'] = df['col1'][1:][::2]

答案 3 :(得分:0)

另一种方法是使用concat

pd.concat([df.col1[::2].reset_index(drop=True), df.col1[1::2].reset_index(drop=True)], axis=1)