我只是在CSV(link是https://github.com/pandas-dev/pandas/files/3496001/multiple_responses.zip)文件中有一个列“methods\u discussed”,它的值是family planning methods的名称,例如:
methods_discussed
emergency
female_sterilization
male_sterilization
iud
NaN
injectables male_condoms
male_condoms
female_sterilization male_sterilization
injectables
iud male_condoms
我使用了df1["methods_discussed"].str.contains(pat = method)
,但输出与预期不匹配。可能雄性不育是雌性不育的子串,这对雄性不育是正确的。在index2的实际输出中显示如下。它必须显示为假,因为在index2的方法讨论栏中有女性灭菌
method_names = ['female_condoms', 'emergency', 'male_condoms', 'pill', 'injectables', 'iud', 'male_sterilization', 'female_sterilization']
for method in method_names:
df1[method]=df1["methods_discussed"].str.contains(pat = method)
df1.head(2)
预期产量
id | methods_discussed | female_condoms | emergency | male_condoms | pill | injectables | iud | male_sterilization | female_sterilization
1 | emergency | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
2 | female_sterilization | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | ***FALSE*** | TRUE
实际产量
id | methods_discussed | female_condoms | emergency | male_condoms | pill | injectables | iud | male_sterilization | female_sterilization
1 | emergency | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
2 | female_sterilization | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | ***TRUE*** | TRUE
代码中没有错误,但只在输出中
在模式周围使用单词boundary-
\b\b
来避免它,参数na=False
也很适合在输出中避免NaN
s-这里替换为False
:相关问题 更多 >
编程相关推荐