![](/img/trans.png)
[英]How to randomly drop rows in Pandas dataframe until there are equal number of values in a column?
[英]pandas how to find the number of rows with the values of a column equal space
我想知道當一列的值等於一個或多個空格或制表符或換行符時,如何在df
查找行數,
df['currency'].str.findall(r'[^\s|\n|\t]+')
但是上面的代碼只給了我currency
列值的行索引。
您可能正在尋找
df['currency'].str.contains(r'\s+').sum()
您當前的方法是尋找不包含空格的行。
另外, \\s
已經包含\\n
和\\t
,因此這里實際上不需要字符類。 +
運算符匹配一次或多次。
\\s
等效於
[ \\t\\n\\r\\f\\v]
有關更多詳細信息,請參見Python文檔 。
嘗試使用.str.contains
,它將為每行返回一個布爾值,然后對結果求和:
df['currency'].str.contains(r'\S+').sum()
根據@Jan和@ctwheels的提示更新了正則表達式- \\s+
將匹配一個或多個空格字符( \\S
將匹配一個或多個非空格字符,如果需要的話)。
您不需要正則表達式。 一種方法是應用pd.Series.strip
並測試結果是否為空字符串。
import pandas as pd
s = pd.Series([' ', '\t', ' ', 'string', '--'])
res = s.str.strip().values == ''
# array([ True, True, True, False, False], dtype=bool)
要計算行數:
res = (s.str.strip().values == '').sum()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.