当列名包含“XXX”时,计算非空单元格数

2024-05-31 23:59:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有59列,其名称的格式为:nn: xxxxxx (ttttttt),其中tttttt是某些特定列的重复名称。现在我想计算tttttt='XXXXXX'时非空单元格的和。我知道如何计算列中非空单元格的数量,但如何在列的名称中添加tttttXXXXXX的条件

import pandas as pd
df = pd.read_csv("dane.csv", sep=';')
shape = list(df.shape)
nonempty=df.apply(lambda x: shape[0]-x.isnull().sum())

输入:

1: Brandenburg (Post-Panamax)               2: Acheron (Feeder)                        5: Fenton (Feeder)
ES-NL-10633096/1938/X1@hkzydbezon.dk/6749   DE-JP-20438082/2066/A2@qwinfhcaer.cu/68849 NL-LK-02275406/2136/A1@ozmmfdpfts.de/73198
BE-BR-61613986/3551/B1@oqk.bf/39927         NL-LK-02275406/2136/A1@ozmmfdpfts.de/73198
PH-SA-39552610/2436/A1@venagi.hr/80578
PA-AE-59814691/4881/X1@zhicvzvksl.cl/25247  OM-PH-31303222/3671/Z1@jtqy.ml/52408

例如,对于这个输入,假设我想计算“Feeder”列中名称的非空单元格数


Tags: csv名称dfa1nldephpd
1条回答
网友
1楼 · 发布于 2024-05-31 23:59:35

您可以使用filter

df.filter(like='(Feeder)').isna().sum()

或者更精确的版本,要求(Feeder)出现在列的末尾:

df.filter(regex='.*(\(Feeder\))$').isna().sum()

输出:

2: Acheron (Feeder)    1
5: Fenton (Feeder)     3
dtype: int64

相关问题 更多 >