Python Pandas选择单个数据框列并保持为数据框而不是系列

时间:2018-12-28 20:38:42

标签: python pandas

我正在做一些工作,我要引用数据框的单个列并对其进行其他操作(例如,合并)。

当我选择一个数据框列时,我发现我经常需要将其更改回一个数据框以合并或执行其他类型的操作。

是否有一种方法可以将单个列保留为一个数据框?

示例

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

我想知道是否有一种系统的方法来避免必须避免将系列重新定义为数据框,而只是将该系列作为一列数据框。

谢谢。

0 个答案:

没有答案