根据Pandas中的列名和位置选择列

时间:2017-10-20 04:50:21

标签: python pandas select indexing

我有一个包含以下列的数据框,例如: 列名= ID,名称,dob,away_dur,away_count,in_dur,in_time等。

我想根据以下条件选择数据并创建新的数据框: 1.新数据框应包括4到11之间的列和 2.新数据框不应包含以_'开头的列。

我知道如何根据名称或位置提取列。但我可以知道如何使用这两种条件来选择数据吗?

2 个答案:

答案 0 :(得分:5)

您可以使用

ndf = df.iloc[:,4:]
ndf = ndf.iloc[:,~ndf.columns.str.startswith('in_')]

答案 1 :(得分:3)

使用列表推导过滤列。然后,使用df.tail

c = [x for x in df.columns if not x.startswith('in_')]
df = df[c].tail(-3)