我有以下代码
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
我需要找到包含给定字符串的行数。使用上面的代码,它给出了荒谬的数字。如何为给定任务调整此代码?
答案 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()
这可能不完全是您所需要的,但可能会帮助您入门。仅收集少量数据将有助于给出更好的答案。