【发布时间】:2021-09-01 16:52:13
【问题描述】:
我有一个名为 results 的 pandas 数据框,其中包含 2 列,一列名为 years 包含年份列表,另一列名为 line_items 包含整数列表。我正在尝试在名为dfcopy 的原始数据帧的副本中对列表值进行排序,但这样它就不会更改原始数据帧。两个可重现的df是这样的:
results = {'years': {0: ['2020', '2021'], 1: ['2019', '2020'], 2: ['2020', '2021'], 3: ['2019', '2020'], 4: ['2019', '2020']}, 'line_items': {0: ['3818', '4121'], 1: ['105', '154'], 2: ['1030', '942'], 3: ['4681', '4849'], 4: ['3439', '3656']}}
dfcopy = results[['years', 'line_items']].copy()
我在dfcopy 上使用applymap 对正在更改results 的列表进行排序。这对我来说毫无意义,因为我的理解和.copy() 的文档都表明这不会改变原始数据框。这是我的代码:
dfcopy.applymap(lambda x: x.sort())
谁能帮我理解为什么会这样。 (PS 我知道我可以做 results.copy() 但这不应该改变 .copy() 函数的功能)
【问题讨论】:
标签: python pandas copy python-applymap