我有一个如下所示的df:
col1
aaa
1
bbb
2
ccc
3
如何从数据框的第二行中拉出数据并使其成为自己的列,如下所示:
col1 col2
aaa 1
bbb 2
ccc 3
我尝试过:
df[::1]
因为第二行的索引为1,但是我没有返回要查找的数据。
答案 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)