假设我的DataFramedf有一个名为col的列,类型为string。
DataFrame
df
col
string
df['col'].filter(str.isnumeric)
jogvjijk1#
你可以这样做:
df.loc[df['col'].str.isnumeric()]
j2datikz2#
第一个问题,你使用的是一个没有括号的 * 内置 * python方法str.isnumeric,因此是TypeError: 'method_descriptor' object is not iterable。第二个问题,假设你已经给str.isnumeric加上了括号,这个函数需要一个参数/字符串来检查给定字符串中的所有字符是否都是数字字符,因此得到了TypeError: unbound method str.isnumeric() needs an argument。第三个问题,假设你已经修复了1)和2),因为这个函数返回一个布尔值(True * 或 * False),你不能把它作为panda * 内置 * 方法pandas.Series.filter的第一个参数传递。根据文档,第一个参数需要类似于列表:项目:类似列表保留项中轴标签在您的示例中,我认为您希望将boolean indexing与pandas.DataFrame.loc一起使用:
str.isnumeric
TypeError: 'method_descriptor' object is not iterable
TypeError: unbound method str.isnumeric() needs an argument
True
False
pandas.Series.filter
pandas.DataFrame.loc
import pandas as pd df = pd.DataFrame({'col': ['foo', 'bar 123', '456']}) m = df['col'].str.isnumeric() out = df.loc[m]
输出量:
print(out) col 2 456
2条答案
按热度按时间jogvjijk1#
你可以这样做:
j2datikz2#
第一个问题,你使用的是一个没有括号的 * 内置 * python方法
str.isnumeric
,因此是TypeError: 'method_descriptor' object is not iterable
。第二个问题,假设你已经给
str.isnumeric
加上了括号,这个函数需要一个参数/字符串来检查给定字符串中的所有字符是否都是数字字符,因此得到了TypeError: unbound method str.isnumeric() needs an argument
。第三个问题,假设你已经修复了1)和2),因为这个函数返回一个布尔值(
True
* 或 *False
),你不能把它作为panda * 内置 * 方法pandas.Series.filter
的第一个参数传递。根据文档,第一个参数需要类似于列表:
项目:类似列表
保留项中轴标签
在您的示例中,我认为您希望将boolean indexing与
pandas.DataFrame.loc
一起使用:输出量: