首页 > 解决方案 > 如何编辑熊猫数据框中列的所有值?

问题描述

我正在尝试编辑pandas 中'ISSN1'数据框 ( ) 的特定列 ( ) 中的所有值。df1此列的示例值是1234-5678,我希望对其进行修改以删除-(从而获得12345678)。

如果我这样做:

print(df1)

for elem in df1.ISSN1:
    elem = str(elem).replace("-", "")

print(df1)

数据框导致显然没有变化,我没有收到错误消息。为什么?如何删除'ISSN1'列的所有值中的破折号?请注意,有些值是NaN

我找到了一些使用 lambdas 的答案,但我发现它有点令人困惑,因为我仍在学习,我更喜欢不包含 lambdas 的答案。

标签: pythonpandasdataframe

解决方案


您可以使用apply

df1['ISSN1'] = df1['ISSN1'].apply(lambda x: str(x).replace('-', '')

pd.Series.str方法:

df1['ISSN1'] = df1['ISSN1'].astype(str).str.replace('-', '')

如果您的列仅包含字符串,并且可能np.nan您可以删除astype(str)

df1['ISSN1'] = df1['ISSN1'].str.replace('-', '')

推荐阅读