首页 > 解决方案 > 以引号开头的 Pandas 字符串问题

问题描述

我有一个 pandas df,其中一列包含曲棍球运动员的位置。该列如下所示:

Pos
"D"
"D"
"D"
"D"
"D"
"D"
"D"
"D"
"L"
"L","R"
"L","R"
"L","R"
"L","R"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L"
"L","C"

我想将此列中的值转换为“D”或“F”。我必须这样做的代码是:

    df.loc[df['Pos'] == '''\"D\"''', 'Pos'] = 'D'
    df.loc[df['Pos'] != '''\"D\"''', 'Pos'] = 'F'

但是,我相信我的代码在处理字符串的开头双引号时遇到了问题。我尝试了一堆不同的变体来处理引号,例如 ("\"D\"", '''"D"''') 但输出仍然不正确。关于如何解决这个问题的任何想法?谢谢。

标签: python-3.xstringpandas

解决方案


如何简单地做:

df['POS'] = df['POS'].apply(lambda x: 'D' if 'D' in x else 'F')

推荐阅读