包含过滤器的熊猫数

时间:2019-05-02 13:03:23

标签: python pandas

我有以下代码

raw_data = pd.read_csv(r'mypath')

illnesses = pd.DataFrame(columns=['Finding_Label', 'Count_of_Patientes_Having'])
index = 0


for row_index, row in raw_data.iterrows():
    for i in row["Finding Labels"].split("|"):
        if (illnesses[illnesses["Finding_Label"].str.contains(i)]).empty:
            illnesses.at[index, 'Finding_Label'] = i
            illnesses.at[index, "Count_of_Patientes_Having"] = raw_data[raw_data["Finding Labels"].str.contains(i)].size
            index = index + 1

我需要找到包含给定字符串的行数。使用上面的代码,它给出了荒谬的数字。如何为给定任务调整此代码?

1 个答案:

答案 0 :(得分:0)

如果没有数据样本,这真的很难,但是根据您的描述,您想计算特定列包含给定字符串的行数?。

如果是这样,为什么不使用DataFrame列的.str.功能呢?


data = pd.DataFrame({
   "Finding_Label": ["A|B", "C|D"]*1000 # 2000 rows in totalonly half of the rows here contain "A"
   })


data["Finding_Label"].str.contains("A").sum()

# or

len(data[data["Finding_Label"].str.contains("A")]) => 1000

# or

data[data["Finding_Label"].str.contains("A")].count()

这可能不完全是您所需要的,但可能会帮助您入门。仅收集少量数据将有助于给出更好的答案。