首页 > 解决方案 > 如何从数据框中选择多个列,并在其中我需要在同一代码中使用现有列创建两个新列?

问题描述

我有一个由 5 列组成的数据框。我需要提取前 3 列,我需要从最后两列创建两个新列?

A列 B列 C列 D列 E列

df[df[1:3]]这将给我前三列,但从 D 列和 EI 列只需要提取最后两个字符。如何在相同的代码中提取?

标签: pythonpandas

解决方案


IIUC,这应该可以解决问题

df1= df.iloc[:,:3]
df2=df.iloc[:,3:]
a=df2.columns[:]
df2[a +'_extracted'] = df2[a].apply(lambda x: x.str[-2:])

输入

script  call_put    strike  animals     codes
a       280          280    rat     nill
a       260         260     cat     fill
a       275         275     pat     dill
b       280         280     mat     grill
b       285         285     bat     shrill

输出 df1

script  call_put    strike
0   a   280     280
1   a   260     260
2   a   275     275
3   b   280     280
4   b   285     285

df2

animals     codes   animals_extracted   codes_extracted
0   rat     nill    at  ll
1   cat     fill    at  ll
2   pat     dill    at  ll
3   mat     grill   at  ll
4   bat     shrill  at  ll

推荐阅读