加入pandas数据帧的问题

时间:2017-04-19 15:17:17

标签: python pandas

所以我试图将两个数据帧连接在一起以绘制另一个数据帧。

我试过了:

import os
import tempfile

msg = "THIS IS A HORRIBLE MESSAGE"

fd, filename = tempfile.mkstemp(dir='.', suffix='.txt')
try:
    with os.fdopen(fd, "w") as f:
        f.write(msg)
finally:
    os.remove(filename)

并收到错误:

genders2 = np.array(male_grades[['grade_difs']].join(female_grades[['grade_difs']], how='outer'))

我能够在我编写的程序中使用此类代码:

AttributeError: 'Series' object has no attribute 'join'

如果我太模糊,请让我知道并且生病,尝试添加更多代码以使其更有意义。

之前的代码:

genders = np.array(male[['MaleAge']].join(female[['FemaleAge']], how='outer'))

1 个答案:

答案 0 :(得分:1)

两点

  1. 您肯定会在pd.Series中获得male_grades。这将解决它

    female_grades = data[data['Gender'] == 'F'][['grade_difs']]
    male_grades = data[data['Gender'] == 'M'][['grade_difs']]
    
  2. 但我宁愿这样做

    female_grades = data.loc[data['Gender'] == 'F', ['grade_difs']]
    male_grades = data.loc[data['Gender'] == 'M', ['grade_difs']]
    
  3. 之后,如果您有共同的列名,则需要确保在join中指定后缀。在连接的一侧指定后缀通常就足够了。

    male[['MaleAge']].join(female[['FemaleAge']], how='outer', rsuffix='_')