我有以下格式的CSV数据:
+-------------+-------------+-------+
| Location | Num of Reps | Sales |
+-------------+-------------+-------+
| 75894 | 3 | 12 |
| Burkbank | 2 | 19 |
| 75286 | 7 | 24 |
| Carson City | 4 | 13 |
| 27659 | 3 | 17 |
+-------------+-------------+-------+
位置
列属于对象
数据类型。我想做的是删除所有具有非数字位置标签的行。因此,根据上表,我的期望输出为:
+----------+-------------+-------+
| Location | Num of Reps | Sales |
+----------+-------------+-------+
| 75894 | 3 | 12 |
| 75286 | 7 | 24 |
| 27659 | 3 | 17 |
+----------+-------------+-------+
现在,我可以用以下方式硬编码解决方案:
list1 = ['Carson City ', 'Burbank'];
df = df[~df['Location'].isin(['list1'])]
这是受以下帖子的启发:
如何从特定列中包含特定字符串的数据框中删除行?
然而,我所寻找的是一个通用的解决方案,它将适用于上述任何类型的表。
In [139]: df[~df.Location.str.contains('\D')]
Out[139]:
Location Num of Reps Sales
0 75894 3 12
2 75286 7 24
4 27659 3 17
您可以使用pd。to_numeric
将非数值强制为nan
,然后根据位置是否为nan
进行过滤:
df[pd.to_numeric(df.Location, errors='coerce').notnull()]
#Location Num of Reps Sales
#0 75894 3 12
#2 75286 7 24
#4 27659 3 17
或者你可以这么做
df[df['Location'].str.isnumeric()]
Location Num of Reps Sales 0 75894 3 12 2 75286 7 24 4 27659 3 17
问题内容: 这个问题已经在这里有了答案 : 在熊猫中的DataFrame上搜索“不包含” (6个答案) 去年关闭。 我在python中有一个非常大的数据框,我想在特定列中删除所有具有特定字符串的行。 例如,我想在数据框的列C中删除所有具有字符串“ XYZ”作为子字符串的行。 可以使用.drop()方法以一种有效的方式来实现吗? 问题答案: pandas具有向量化的字符串操作,因此您可以过滤掉包含不
我在python中有一个非常大的数据帧,我想把所有具有特定字符串的行放到特定列中。 例如,我想删除所有在数据帧的C列中有字符串“XYZ”作为子字符串的行。 这可以通过使用有效的方式实现。drop()方法?
我有一个具有以下列名的熊猫数据框: 结果1、测试1、结果2、测试2、结果3、测试3等。。。 我想删除名称中包含单词“Test”的所有列。此类列的数量不是静态的,而是取决于以前的函数。 我该怎么做?
问题内容: 例如,我正在从文本文件中提取文本String,我需要这些词来形成数组。但是,当我执行所有这些操作时,有些单词以逗号(,)或句号(。)结尾,甚至附有括号(这完全是正常现象)。 我要做的是摆脱那些角色。我一直在尝试使用Java中的预定义String方法来做到这一点,但我还是无法解决。 问题答案: 用: replaceAll采用正则表达式。这个: …寻找每个逗号和/或句号。
问题内容: 我有一个带有以下列名称的pandas数据框: Result1,Test1,Result2,Test2,Result3,Test3等… 我要删除名称包含单词“ Test”的所有列。这样的列数不是静态的,而是取决于先前的功能。 我怎样才能做到这一点? 问题答案:
我已经使用熊猫导入了一个csv,现在我想删除包含某些通配符的行,可能是dev或test-dashboard-这些是字段中较大字符串的一部分。 我已经尝试了各种方法来这样做我的minus_testing_dashboard变量但没有一个工作