所以我是Python新手,我尝试使用Python在Excel工作表中搜索每行中的“ICD”,并使用结果创建一个新列,因此,如果一行包含单词“ICD”,那么在新列将出现"is"一词,如果没有,则会出现“否”一词。
到目前为止,我已经尝试了很多不同的方法,但我被困住了,因为我对此很陌生。这是我到目前为止所拥有的。我花了一段时间才找到一种方法来导入 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"
]`
最佳答案
Pandas 具有原生 Excel 读取支持,因此您不需要 xlrd 或 xlsxwriter,除非您有复杂的输出格式要求。如果您只是阅读、添加列和写作,则可以使用 pandas 来完成所有这些操作。
您可以使用 lambda 函数一次检查所有行。这可能看起来有点高级,但是 axis=1
上的 .apply(lambda)
将执行您分配给数据帧每一行的任何逻辑。然后我们可以使用 .str .contains() 和 .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)
输出
>>> df
0 1 2 has_letter_a
0 a b c True
1 a d e True
2 x y z False
关于python - 如何在 Excel 文档中搜索特定单词并使用搜索结果构建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56904436/