我有一个字典,它的值是Pandas数据帧。我想在每个数据帧中创建新列。我可以很容易地使用for循环,但我想用一种更像Python的方式。字典理解似乎是一种理想的方法。如何使用字典理解来做到这一点?在
df1 = pd.DataFrame(data =[['2013',98],['2014',100],['2015',110],
['2016',110],['2017',115]],
columns = ['Year','Value'])
df2 = pd.DataFrame(data =[['2013',85],['2014',90],['2015',95],
['2016',97],['2017',99]],
columns = ['Year','Value'])
df3 = pd.DataFrame(data =[['2013',30],['2014',28],['2015',25],
['2016',28],['2017',32]],
columns = ['Year','Value'])
d1 = {}
d1['df1'] = df1
d1['df2'] = df2
d1['df3'] = df3
for k in d1.keys():
d1[k]['shifted'] = d1[k]['Value'].shift(2)
您可以创建一个小helper函数,该函数在dictionary comprehension中调用:
编辑:字典理解创建一个新字典。要更新原始版本,可以调用:
^{pr2}$如果您只想有条件地将额外的序列添加到数据帧的选择中,例如
在这个例子中,一个额外的序列将被添加到df2和df3中,但是df1不会被改变。在
您可以用
concat
和keys
来尝试获取df1
^{pr2}$相关问题 更多 >
编程相关推荐