当前位置: 首页 > 知识库问答 >
问题:

检查整个熊猫对象列是否为字符串

董庆
2023-03-14

即使数据类型是object,如何检查列是字符串还是其他类型(例如int或float)?

(理想情况下,我希望此操作矢量化,而不是applymap检查每一行…)

import io
# American post code
df1_str = """id,postal
1,12345
2,90210
3,"""
df1 = pd.read_csv(io.StringIO(df1_str))
df1["postal"] = df1["postal"].astype("O")  # is an object (of type float due to the null row 3)
# British post codes
df2_str = """id,postal
1,EC1
2,SE1
3,W2"""
df2 = pd.read_csv(io.StringIO(df2_str))
df2["postal"] = df2["postal"].astype("O")  # is an object (of type string)

df1df2在执行df[“posal”]时返回object。数据类型

  • 但是,df2.str方法,例如df2[“postal”].str.lower(),但df1没有。
  • 类似地,df1可以对其进行数学运算,例如df1*2

这与其他SO问题不同。他们问列内是否有字符串(而不是整列)。例如:

  • Python:检查dataframe列是否包含字符串类型
  • 检查字符串是否在数据帧中
  • 检查dataframe列中的字符串类型

共有1个答案

皇甫才良
2023-03-14

您可以使用pandas.api.types.infere\u dtype

>>> pd.api.types.infer_dtype(df2["postal"])
'string'
>>> pd.api.types.infer_dtype(df1["postal"])
'floating'

从文档中:

有效地推断传递val或类似列表的值数组的类型。返回描述类型的字符串

 类似资料:
  • 问题内容: 我想查看数据框内特定列中是否存在特定字符串。 我遇到了错误 ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 问题答案: 将返回大小为布尔值的指标向量 因此,您可以使用 或者,如果您不在乎有多少条记录与您的查询匹配

  • 问题内容: 有没有一种方法可以检查Pandas DataFrame中是否存在列? 假设我有以下DataFrame: 我想计算 但是首先我要检查是否存在,如果不存在,我要计算。 问题答案: 这将起作用: 但是为了清楚起见,我可能将其写为:

  • 问题内容: 有没有一种快速的方法来检查对象是jQuery对象还是本机JavaScript对象? 例: 显然,上面的代码有效,但并不安全。您可能会向对象添加选择器键并获得相同的结果。有没有更好的方法来确保该对象实际上是jQuery对象? 符合 问题答案: 您可以使用运算符: 说明 :该函数(又名)被实现为构造函数。构造函数将以前缀调用。 调用时,内部jQuery将此转换为1。JavaScript继续

  • 问题内容: 我想检查数据框中的一列是否包含字符串。我本以为可以仅通过检查dtype来完成此操作,但事实并非如此。包含字符串的pandas系列仅具有dtype’object’,它也用于其他数据结构(如列表): 产生: 有什么方法可以检查一列是否仅包含字符串? 问题答案: 您可以使用它来查看列中的所有元素是否都是字符串 只检查是否有字符串

  • 我有一个相当大的数据帧(11k行和20列)。其中一列的数据类型是混合的,主要是数字(float),其中有少量字符串分散在各处。 在使用混合列中的数据执行一些统计分析之前,我通过查询其他列来对该数据帧进行子集划分(但如果存在字符串,则无法执行此操作)。99%的时间,一旦子集这个列是纯数字的,但很少字符串值会在子集中结束,我需要捕获它。 通过Pandas混合类型列循环检查字符串(或者反过来检查整个列是

  • 问题内容: 我有一个isNotEmpty函数,如果字符串不为空,则返回true;如果字符串为空,则返回false。我发现如果我通过它传递一个空字符串,它将无法正常工作。 使用isNotEmpty验证字符串: 如果该字符串为空,则其他字符串将不会执行,我不明白为什么,请有人对此有所帮助。 问题答案: 实际上是简单的问题。更改: 至 可以说,您可能还想将其更改为: 因为如果您传递的是数字0以及其他一些