在Loc vs. iloc vs. ix vs. at vs. iat的答案中选择DataFrame
?例如。
df = pd.DataFrame(
{'age':[30, 2, 12, 4, 32, 33, 69],
'color':['blue', 'green', 'red', 'white', 'gray', 'black', 'red'],
'food':['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'],
'height':[165, 70, 120, 80, 180, 172, 150],
'score':[4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2],
'state':['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']},
index=['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia']
)
现在我想要所有的栏目,除了“食物”和“高度”。
我认为类似于df.loc[:,['age':'color','score':'state']]
的东西可以工作,但是Python返回SyntaxError:invalid syntax
。
我知道有一种解决方法:df.drop(columns=['food','height'])
。然而,在我的现实生活中,我有数百列要删除。键入所有列名是如此低效。
我期待类似于R语言中的dplyr::select(df,-(食物:身高))
或dplyr::select(df,年龄:颜色,分数:状态)
。
还阅读了选择/排除Pandas中的列集。
首先通过Index.get_loc
获取列名的位置,然后使用Numpy.r_
将所有切片器连接在一起:
a = np.r_[df.columns.get_loc('age'):df.columns.get_loc('color')+1,
df.columns.get_loc('score'):df.columns.get_loc('state')+1]
df = df.iloc[:, a]
print (df)
age color score state
Jane 30 blue 4.6 NY
Nick 2 green 8.3 TX
Aaron 12 red 9.0 FL
Penelope 4 white 3.3 AL
Dean 32 gray 1.8 AK
Christina 33 black 9.5 TX
Cornelia 69 red 2.2 TX
首先,找到位于食物
和高度
(包括)之间的所有列。
c = df.iloc[-1:0].loc[:, 'food':'height'].columns
接下来,筛选与差异
/isin
/setadi1d
-
df[df.columns.difference(c)]
或者,
df.loc[:, ~df.columns.isin(c)]
或者,
df[np.setdiff1d(df.columns, c)]
age color score state
Jane 30 blue 4.6 NY
Nick 2 green 8.3 TX
Aaron 12 red 9.0 FL
Penelope 4 white 3.3 AL
Dean 32 gray 1.8 AK
Christina 33 black 9.5 TX
Cornelia 69 red 2.2 TX
问题内容: 我想知道Pandas DataFrames中是否有一种优雅而简捷的方式来按数据类型(dtype)选择列。即从DataFrame中仅选择int64列。 详细来说, 先谢谢您的帮助 问题答案: df.loc[:, df.dtypes == np.float64]
问题内容: 据说如果使用group by子句,则select列列表中必须存在group by列名,但是上面的查询不需要选择sourceobjectid。 问题答案: 结果 不是 遇到的第一行。MySQL非常清楚所谓的“隐藏列”的使用。引用文档: MySQL扩展了GROUP BY的使用,以便选择列表可以引用未在GROUP BY子句中命名的非聚合列。这意味着前面的查询在MySQL中是合法的。您可以使用
我一直在寻找通过python文档和论坛来选择列的方法,但是关于列索引的每个示例都过于简单。 假设我有一个10x10的数据帧 到目前为止,给出的所有文档只是一个简单的索引示例,如
问题内容: 我想了解MySQL中的某些特定行为。运行“ select @@ version”,我看到我的版本是5.6.34-log。 让我使用生成的表放置样本,以使其更易于重现: 正如标题所建议的那样,我最初搜索的是如何通过别名选择列,以便重用计算所得的字段,从而避免了冗长的查询。如文档中所述,大多数答案要么建议使用子查询,要么使用变量- 一种可读性差,而另一种则不能由自己的数据库开发人员来保证。
本文向大家介绍MySQL 按列名选择,包括了MySQL 按列名选择的使用技巧和注意事项,需要的朋友参考一下 示例 询问 结果
这个问题可能非常愚蠢,但我不知道该怎么做 有一个带有N列的。我需要选择一些列,按列的索引引用,然后将所有值转换为数字,并在我的 我已经通过列名引用(比如完成了这项工作,但仍然坚持使用索引(比如 在这种情况下,对列引用的正确方法是什么?(python 2.7)