[英]Pandas: Using iloc to count all occurrences of pattern
輸入是一堆電子表格,其中文本“N/A”用於缺失值。 我需要僅使用索引號記錄每列中出現的次數,因為我不知道列的名稱。 前幾列將始終相同,但最后幾列會根據電子表格的類型而變化。
df = pd.DataFrame([[1000, 'Jerry', 'BR1','BR1','N/A'],
[1001, 'N/A', 'N/A', 'BR1','N/A'],
['N/A', 'N/A', 'BR3', 'BR2','N/A'],
[1003, 'Perry','BR4','BR1','N/A']],
columns=['ID', 'Name', 'Branch', 'Member of','Status'])
我需要能夠執行以下操作:
df.iloc[:, 10:].contains('N/A').count()
而且還相反:
~df.iloc[:, 10:].contains('N/A').count()
它應該 output 類似於value_counts
Name 2
Branch 1
Status 4
...ETC。
這是一個選項:它為每列創建一個帶有 value_counts 的字典。 您可以制作一個列表,也可以使用值壓縮列。
summary = {}
for i in df:
summary[i] = df[i].value_counts()
例如,分支列的 Output 將是:
summary['Branch']
BR1 1
N/A 1
BR3 1
BR4 1
Name: Branch, dtype: int64
你可以試試這個:
import pandas as pd
df = pd.DataFrame([[1000, 'Jerry', 'BR1','BR1','N/A'],
[1001, 'N/A', 'N/A', 'BR1','N/A'],
['N/A', 'N/A', 'BR3', 'BR2','N/A'],
[1003, 'Perry','BR4','BR1','N/A']],
columns=['ID', 'Name', 'Branch', 'Member of','Status'])
df.applymap(lambda x: x == 'N/A').sum()
它給:
ID 1
Name 2
Branch 1
Member of 0
Status 4
dtype: int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.