我是Pandas的新手,我想以一种简单通用的方法来查找categorical
我的哪些列DataFrame
,而无需手动指定每种列类型,这与本SO问题不同。使用以下项df
创建:
import pandas as pd
df = pd.read_csv("test.csv", header=None)
例如
0 1 2 3 4
0 1.539240 0.423437 -0.687014 Chicago Safari
1 0.815336 0.913623 1.800160 Boston Safari
2 0.821214 -0.824839 0.483724 New York Safari
。
更新(2018/02/04)问题假设数值列不是分类的,@Zero 接受的答案解决了这个问题。
注意-正如@Sagarkar的评论指出的那样,这并不总是正确的。
困难在于数据类型和分类/有序/标称类型是正交的概念,因此在它们之间进行映射并不容易。@Jeff的答案在下面指定了实现手动映射的精确方式。
您可以df._get_numeric_data()
用来获取数字列,然后找出分类列
In [66]: cols = df.columns
In [67]: num_cols = df._get_numeric_data().columns
In [68]: num_cols
Out[68]: Index([u'0', u'1', u'2'], dtype='object')
In [69]: list(set(cols) - set(num_cols))
Out[69]: ['3', '4']
问题内容: 我正在尝试检查python列中是否包含某个值。我正在使用,我毫不怀疑它是一个很好的工具。问题是我有超过350K的行,并且输出不会显示所有的行,因此我可以查看该值是否实际包含在内。简而言之,我只想知道(Y / N)列中是否包含特定值。我的代码如下: 问题答案: 我认为如果需要行,其中column的值包含string : 或者,如果的列是: 如果要检查 列中的最后4位数字: 样品:
问题内容: 如果我有这样的框架 我想检查这些行中是否包含某个单词,我只需要这样做。 输出: 如果我决定列出一个清单 如何检查列表中的行是否包含某个单词? 问题答案: 该方法接受正则表达式模式: 由于支持正则表达式模式,因此您还可以嵌入标志:
如果我有这样一个框架 我想检查这些行中是否有包含某个单词的行,我必须这样做。 输出: 如果我决定列一个清单: 如何检查行是否包含列表中的某个单词?
给定一个包含可能分散在各处的NaN值的pandas数据frame: 问题:如何确定哪些列包含NaN值?特别是,我可以获得包含NANS的列名列表吗?
问题内容: 在Python Pandas中,检查DataFrame是否具有一个(或多个)NaN值的最佳方法是什么? 我知道函数,但是这会为每个元素返回一个布尔值的DataFrame。此处的帖子也无法完全回答我的问题。 问题答案: jwilner的反应是现场的。我一直在探索是否有更快的选择,因为根据我的经验,求平面数组的总和(奇怪)比计数快。这段代码似乎更快: 速度稍慢,但当然还有其他信息-的数量。