我創建了以下資料框(稱為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
我只關注兩個物件列,它們是job和UniqueID。如你看到的:
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?
uj5u.com熱心網友回復:
您可以定義自己的功能
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
uj5u.com熱心網友回復:
您可以對apply要檢查的列使用該方法,以查找每一行的數字。總和將為您提供該列中具有數字的值的數量:
col = 'UniqueID'
df[col].apply(
lambda val: any(ch.isdigit() for ch in val)
).sum()
如果您知道列中的值是一致的,您也可以只檢查第一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456643.html
上一篇:即使檢測到MatLab,CMake也找不到MatLab庫
下一篇:創建資料框組合并保留唯一的列值
