因此,我是python的新手,我正尝试使用python在excel工作表中搜索每一行中的“ ICD”,并使用结果创建一个新列,因此,如果一行包含单词“ ICD”,则在如果没有,则会在新列中显示“是”,然后显示“否”。
到目前为止,我已经尝试了许多不同的方法,但是由于即时消息是新手,所以我陷入了困境。这是我到目前为止所拥有的。我甚至花了一段时间才找到一种导入Excel文档本身的方法,现在我必须找到一种方法来添加新列并搜索每一行并放入结果。我知道我需要一个循环,我知道我需要一个if / else语句,但是我不知道将它们放置在哪里或将它们放置在哪里。即时通讯使用python 3.7
import pandas as pd
import xlrd
df = pd.read_excel (r'C:\New folder\CrohnsD.xlsx')
print (df)
import xlsxwriter
ICD=[
str = df
str.find("ICD",[ 0,[ 1057]])\
if row contains "ICD"
]`
答案 0 :(得分:0)
Pandas具有本机excel阅读支持,因此除非您有复杂的输出格式要求,否则您不需要xlrd或xlsxwriter。如果您只是在阅读,添加一列并进行写作,则可以使用熊猫来实现所有这些功能。
您可以使用lambda函数一次检查所有行。这似乎有些高级,但是.sidebar .nav-link-top>a {
display: block;
padding: 4px 0px 4px 15px;
background-color: #ffffff;
color: #444444;
text-decoration: none;
font-size: 13px;
font-weight: bold;
}
.sidebar .nav-link-top>a:hover {
background-color: #58cb57;
color: #ffffff;
}
.sidebar .nav-link-top>a.active {
color: #ffffff;
background-color: #58cb57;
}
.nav-link-bottom>a {
display: block;
padding: 4px 0px 4px 15px;
background-color: #ffffff;
color: #444444;
text-decoration: none;
font-size: 13px;
font-weight: bold;
}
.nav-link-bottom>a:hover {
background-color: #58cb57;
color: #ffffff;
}
.nav-link-bottom>a.active {
color: #ffffff;
background-color: #58cb57;
}
.sub-menu>a {
padding-left: 25px;
font-size: 11px;
font-weight: normal;
}
上的.apply(lambda)
将执行您分配给数据帧每一行的任何逻辑。然后,我们可以使用axis=1
来检查每个.str .contains() and .any()
的礼物
'a'
输出
data = [['a','b','c'],['a','d','e'],['x','y','z']]
df = pd.DataFrame(data)
# Create a new column that contains True or False depending on if any of the values in that row contain the string 'a'
df['has_letter_a'] = df.apply(lambda row: True if row.str.contains('a').any() else False, axis=1)
答案 1 :(得分:0)
您可以依赖基本的pandas字符串函数-不需要任何花哨的东西。寻找一列文字是否包含特定的文字字符串?使用Series.str.contains
:
df = pd.DataFrame({'x':['abc','defgICD','hijicd','klm']})
df['icd'] = df['x'].str.contains('icd', case=False)
返回:
x icd
0 abc False
1 defgICD True
2 hijicd True
3 klm False
有关可用选项的一些文档,请参见str.contains
的帮助页面。特别是,您可以指定是否根据大小写进行匹配(在这种情况下,您要匹配的模式必须是精确的)或是否匹配icd
,ICD
,iCd
等。< / p>
观点:随着您在编程甚至Excel方面获得更多的经验,我建议您坚持使用布尔型True / False值,而不是编码为“ Yes” /“ No”,因为这会更多简单,易于记忆等。如果您需要向经理/客户/其他人展示某些内容,则可以将True / False替换为其他内容作为最后一步。