根据pandas中另一列的值选择一个列范围

时间:2017-12-07 02:09:58

标签: python pandas

我的数据集看起来像这样(第一行是标题)

0    1    2    3    4    5
1    3    4    6    2    3
3    8    9    3    2    4
2    2    3    2    1    2

我想根据列[5]选择数据集的一系列列,例如:

1    3    4
3    8    9    3
2    2

我尝试了以下方法,但它无效:

df.iloc[:,0:df['5'].values]

2 个答案:

答案 0 :(得分:2)

让我们试试:

df.apply(lambda x: x[:x.iloc[5]], 1)

输出:

     0    1    2    3
0  1.0  3.0  4.0  NaN
1  3.0  8.0  9.0  3.0
2  2.0  2.0  NaN  NaN

答案 1 :(得分:2)

重新创建数据框

df=pd.DataFrame([x[:x[5]] for x in df.values]).fillna(0)
df
Out[184]: 
   0  1    2    3
0  1  3  4.0  0.0
1  3  8  9.0  3.0
2  2  2  0.0  0.0