我正在做一些工作,我要引用数据框的单个列并对其进行其他操作(例如,合并)。
当我选择一个数据框列时,我发现我经常需要将其更改回一个数据框以合并或执行其他类型的操作。
是否有一种方法可以将单个列保留为一个数据框?
示例
df1
astigmatism nearsighted glasses
Roy 2.0 yes monofocal
Mary 0.0 no plain
Peter 1.0 yes bifocal
和
df2
height weight haircolor
Roy 72 159 brown
Mary 60 110 brown
Peter 65 130 black
我想将df1['glasses']
合并到df2
:
df3 = df2.merge(df1['glasses'], how='left', left_index=True, right_index=True)
这给了我一个错误:
{ValueError}can not merge DataFrame with instance of type <class 'pandas.core.series.Series'>
但如果我这样做:
df3 = df2.merge(pandas.DataFrame(df1['glasses']), how='left', left_index=True, right_index=True)
它起作用了,我得到了预期的结果:
df3
height weight haircolor glasses
Roy 72 159 brown monofocal
Mary 60 110 brown plain
Peter 65 130 black bifocal
我想知道是否有一种系统的方法来避免必须避免将系列重新定义为数据框,而只是将该系列作为一列数据框。
谢谢。