如何从df中选择列a和b,并将它们保存到新的数据帧df1中?

index  a   b   c
1      2   3   4
2      3   4   5

尝试失败:

df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']

当前回答

您可以使用pandas.DataFrame.filter方法对列进行筛选或重新排序,如下所示:

df1 = df.filter(['a', 'b'])

这在链接方法时也非常有用。

其他回答

您可以使用pandas.DataFrame.filter方法对列进行筛选或重新排序,如下所示:

df1 = df.filter(['a', 'b'])

这在链接方法时也非常有用。

我发现这种方法非常有用:

# iloc[row slicing, column slicing]
surveys_df.iloc [0:3, 1:4]

更多详情请点击此处。

如果要按行索引和列名获取一个元素,可以像df['b'][0]一样执行。这就像你能想象的那样简单。

或者可以使用df.ix[0,'b']-索引和标签的混合用法。

注意:从v0.20开始,ix已被弃用,取而代之的是loc/iloc。

对于Pandas,

具有列名称

dataframe[['column1','column2']]

要通过iloc和带有索引编号的特定列进行选择,请执行以下操作:

dataframe.iloc[:,[1,2]]

带有loc的列名可以使用如下

dataframe.loc[:,['column1','column2']]
def get_slize(dataframe, start_row, end_row, start_col, end_col):
    assert len(dataframe) > end_row and start_row >= 0
    assert len(dataframe.columns) > end_col and start_col >= 0
    list_of_indexes = list(dataframe.columns)[start_col:end_col]
    ans = dataframe.iloc[start_row:end_row][list_of_indexes]
    return ans

只需使用此功能