当列名包含'XXX'时计算非空单元格的数量[重复]

Posted

技术标签:

【中文标题】当列名包含\'XXX\'时计算非空单元格的数量[重复]【英文标题】:Calculate the number of non empty cells when the name of a column contains 'XXX' [duplicate]当列名包含'XXX'时计算非空单元格的数量[重复] 【发布时间】:2020-02-25 01:39:22 【问题描述】:

我有 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”列中名称的非空单元格的数量

【问题讨论】:

您能否分享一些 CSV 中的数据,以便我们查看标题并执行您的代码? 您的空值是否正确定义为NaN 或只是一个带空格的字符串?您可能需要先转换它们 @AlexanderCécile 标题与我包含的输入示例中的一样。并且空值定义得很好 【参考方案1】:

你可以使用filter:

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

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

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

输出:

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

【讨论】:

以上是关于当列名包含'XXX'时计算非空单元格的数量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个[重复]中制作具有不同数量单元格的部分

excel求单元格个数的函数是啥

更改重复使用的单元格的类型? [关闭]

如何查找一行数据中倒数第二个非空单元格的内容呢?

如何平均来自非空且非零的特定单元格的值?

VBA如何查找上一个非空单元格