[英]How to sort a column using regex in pandas?
在“新案例”列中,我大約有以下值:
+10 000
, + 1000
, + 100
和+ 10, 0
。
我的代碼:
import re
import pandas as pd
iris = pd.read_csv('Covid-19.csv')
a = iris['New Cases'].str.contains[r'+[d{5}]']
iris.sort_values(a)
堆棧跟蹤:
------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input42-291424a61469> in <module>
2 import pandas as pd
3 iris = pd.read_csv('Covid-19.csv')
------> 4 a = iris['New Cases'].str.contains[r'+[d{5}]']
5 iris.sort_values(a)
TypeError 'method' object is not subscriptable
您可以使用
iris['New Cases'] = iris['New Cases'].astype(str).str.replace(r'\D+', '').astype(int)
首先,您需要將數據轉換為字符串類型( .astype(str)
),然后刪除所有不是數字的字符( .str.replace(r'\D+', '')
),然后將結果轉換為一個 int (帶有.astype(int)
)。
Python pandas 測試:
data = { 'New Cases': ['+1,370', '+6,740', '+1,159', 0, '+9,625']}
df = pd.DataFrame(data)
df['New Cases'].astype(str).str.replace(r'\D+', '').astype(int)
# 0 1370
# 1 6740
# 2 1159
# 3 0
# 4 9625
# Name: New Cases, dtype: int32
pd.DataFrame.str.contains
是一個方法,所以你需要調用它。 嘗試:
iris['New Cases'].str.contains(r'+[d{5}]')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.