簡體   English   中英

Pandas:使用 iloc 計算所有出現的模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM