当前位置: 首页 > 面试题库 >

选择/排除熊猫中的列集

方琦
2023-03-14
问题内容

我想基于列选择从现有数据框创建视图或数据框。

例如,我想df2从一个数据框创建一个数据框,该数据框df1包含其中的所有列(其中两个除外)。我尝试执行以下操作,但没有成功:

import numpy as np
import pandas as pd

# Create a dataframe with columns A,B,C and D
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))

# Try to create a second dataframe df2 from df with all columns except 'B' and D
my_cols = set(df.columns)
my_cols.remove('B').remove('D')

# This returns an error ("unhashable type: set")
df2 = df[my_cols]

我究竟做错了什么?也许更笼统地说,熊猫必须采用什么机制来支持从数据帧中挑选和 排除 任意列集?


问题答案:

您可以删除不需要的列,也可以选择所需的列

# Using DataFrame.drop
df.drop(df.columns[[1, 2]], axis=1, inplace=True)

# drop by Name
df1 = df1.drop(['B', 'C'], axis=1)

# Select the ones you want
df1 = df[['a','d']]


 类似资料:
  • 我有一个如下所示的数据帧: 如何获取除之外的所有列?

  • 问题内容: 我有一个数据框看起来像这样: 我如何才能获得除以外的所有列? 问题答案: 当列不是MultiIndex时,仅是列名称的数组,因此您可以执行以下操作:

  • 问题内容: 假设我有一个数据框如下 现在,我希望a和b列不同的行。所以预期的输出是 我怎样才能做到这一点? 问题答案: 我喜欢可读性,请使用: 输出:

  • 问题内容: 我有一个从csv文件构建的pandas中的数据框。数据框有几列,并由其中一列进行索引(这是唯一的,因为每一行都有用于该索引的该列的唯一值。) 如何基于应用于多个列的“复杂”过滤器选择数据框的行?我可以轻松地从列中大于10的数据框中选择切片,例如: 但是,如果我想要的东西就像一个过滤器:选择的切片,其中 任何 列都大于10? 或者,如果for的值大于10但值小于5? 这些如何在熊猫中实现

  • 假设我们有一个包含许多列的数据框,。我只想创建一个包含以下列的DF

  • 我想根据列选择从现有数据帧创建视图或数据帧。 例如,我想从dataframe创建一个dataframe,该dataframe保存除两个列以外的所有列。我试着做了以下的操作,但没有奏效: