【发布时间】:2019-04-23 19:43:29
【问题描述】:
问题:在类似于列表推导的一行代码中,根据条件,将新列添加到 DataFrame 并使用来自另一个 DataFrame 的列的值填充。
示例代码:
我用一些瞳孔信息创建了一个名为 df 的 DataFrame
data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'year': [2012, 2012, 2013, 2014, 2014],
'reports': [4, 24, 31, 2, 3]}
df = pd.DataFrame(data, index = ['Cochice', 'Pima', 'Santa Cruz',
'Maricopa', 'Yuma'])
然后是名为 df_extra 的第二个 DataFrame,它具有年份的字符串表示:
extra_data = {'year': [2012, 2013, 2014],
'yr_string': ['twenty twelve','twenty thirteen','twenty fourteen']}
df_extra = pd.DataFrame(extra_data)
现在如何将值 yr_string 作为新列添加到 df 中,其中数字年份在一行代码中匹配?
我可以通过几个 for 循环轻松做到这一点,但我真的很想知道这是否可以在一行中完成,类似于列表推导?
我已经在这里搜索过问题,但是没有讨论根据一行中的条件从另一个 DataFrame 向现有 DataFrame 添加新列。
【问题讨论】:
标签: python pandas dataframe list-comprehension