【问题标题】:Getting output of last line of code only?仅获取最后一行代码的输出?
【发布时间】:2020-08-28 15:11:17
【问题描述】:

在 df 中创建列“位置英语”。必须将“位置”列中的卡纳达语位置转换为英文。 “位置英语”列仅包含英语的 Ajekar 和卡纳达语的所有其他位置。

df['Location English'] = df['Location'].apply(lambda s: s.replace('ಶಂಕರನಾರಯಣ', 'Shankaranarayana'))
df['Location English'] = df['Location'].apply(lambda s: s.replace('ಕಾರ್ಕಳ', 'Karkala'))
df['Location English'] = df['Location'].apply(lambda s: s.replace('ಅಜೆಕಾರು', 'Ajekar'))

【问题讨论】:

  • 嗨!欢迎来到 Stackoverflow。您能否编辑您的帖子以使其包含问题?
  • 您创建相同的新列 3 次。当然,只保留最后一个。

标签: python python-3.x pandas dataframe lambda


【解决方案1】:

每次从df['Location']读取时,它不会改变,所以它会覆盖df['Location English']之前的值。您可以像这样应用所有更改:

df['Location English'] = df['Location'].apply(lambda s: s.replace('ಶಂಕರನಾರಯಣ', 'Shankaranarayana'))
df['Location English'] = df['Location English'].apply(lambda s: s.replace('ಕಾರ್ಕಳ', 'Karkala'))
df['Location English'] = df['Location English'].apply(lambda s: s.replace('ಅಜೆಕಾರು', 'Ajekar'))

【讨论】:

    【解决方案2】:

    实际上,您可以将replace 链接在一行中:

    df['Location English'] = df['Location'].replace('ಶಂಕರನಾರಯಣ', 'Shankaranarayana').replace('ಕಾರ್ಕಳ', 'Karkala').replace('ಅಜೆಕಾರು', 'Ajekar')
    

    【讨论】:

      【解决方案3】:

      每一行都是对df['Location English'] 的赋值。 这就是为什么你只得到df['Location English'] 中的最后一行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-01
        • 1970-01-01
        • 2023-03-31
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        • 1970-01-01
        相关资源
        最近更新 更多