gpt4 book ai didi

python - 识别包含数字和字符串的 pandas 数据框列

转载 作者:行者123 更新时间:2023-12-03 08:07:25 24 4
gpt4 key购买 nike

我创建了以下数据框(称为df):

d = {'ltv': [1, 22,45,78], 'age': [33, 43,54,65],'job': ['Salaried','Salaried','Salaried','Owner'], 'UniqueID' : ['A1','A2','A3','A4'] }
df = pd.DataFrame(data=d)

看起来像这样:

print(df)

ltv age job UniqueID
1 33 Salaried A1
22 43 Salaried A2
45 54 Salaried A3
78 65 Owner A4

我检查了它的列类型:

print(df.info())

# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ltv 4 non-null int64
1 age 4 non-null int64
2 job 4 non-null object
3 UniqueID 4 non-null object

我只关注两个对象列,即 jobUniqueID。正如你所看到的:

  • job 仅包含字符串
  • UniqueID 包含字符串和数字

我希望能够识别包含字符串和数字的列(在本例中为 UniqueID)。

如果我使用以下代码作为 UniqueID:

print(df['UniqueID'].str.isalnum())

0 True
1 True
2 True
3 True

我看到它对所有记录返回True,这很棒。现在,如果我对 job 使用相同的代码,我会得到相同的结果:

print(df['job'].str.isalnum())

0 True
1 True
2 True
3 True

那么,如何在 pandas 中识别哪一列同时包含字符串和数字(​​在本例中:UniqueID)?

最佳答案

你可以定义自己的函数

def findchrandnum(x):
try :
return all(x.str.isalnum() & ~x.str.isalpha() & ~x.str.isdigit())
except:
return False
df.apply(findchrandnum)
Out[66]:
ltv False
age False
job False
UniqueID True
dtype: bool

关于python - 识别包含数字和字符串的 pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71768475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com