![](/img/trans.png)
[英]Pandas: "ValueError: Buffer has wrong number of dimensions (expected 1, got 0)
[英]Pandas merge giving error "Buffer has wrong number of dimensions (expected 1, got 2)"
我正在尝试进行 pandas 合并,并在我尝试运行它时从标题中得到上述错误。 我正在使用 3 列进行匹配,而就在我只对 2 列进行类似合并之前,它工作正常。
df = pd.merge(df, c, how="left",
left_on=["section_term_ps_id", "section_school_id", "state"],
right_on=["term_ps_id", "term_school_id", "state"])
两个数据框的列
df:
Index([u'section_ps_id', u'section_school_id', u'section_course_number', u'secti
on_term_ps_id', u'section_staff_ps_id', u'section_number', u'section_expression'
, u'section_grade_level', u'state', u'sections_id', u'course_ps_id', u'course_sc
hool_id', u'course_number', u'course_schd_dept', u'courses_id', u'school_ps_id',
u'course_school_id', u'school_name', u'school_abbr', u'school_low_grade', u'sch
ool_high_grade', u'school_alt_school_number', u'school_state', u'school_phone',
u'school_fax', u'school_principal', u'school_principal_phone', u'school_principa
l_email', u'school_asst_principal', u'school_asst_principal_phone', u'school_ass
t_principal_email'], dtype='object')
c:
Index([u'term_ps_id', u'term_school_id', u'term_portion',
u'term_start_date', u' term_end_date', u'term_abbreviation',
u'term_name', u'state', u'terms_id', u'sch ool_ps_id',
u'term_school_id', u'school_name', u'school_abbr', u'school_low_grad
e', u'school_high_grade', u'school_alt_school_number',
u'school_state', u'school
_phone', u'school_fax', u'school_principal', u'school_principal_phone', u'school
_principal_email', u'school_asst_principal', u'school_asst_principal_phone', u's chool_asst_principal_email'],
dtype='object')
是否可以像这样合并三列? 这里的合并调用有什么问题吗?
正如评论中提到的,你有一个欺骗列:
要解决dupe 列的问题,您可以使用duplicated with smth 删除dupe 列。 喜欢:
c = c[~c.columns.duplicated(keep='first')]
或使用例如: c.columns=[c.columns[i]+str(i) for i in range(len(c.columns))]
请记住,在这种情况下,您必须调整合并部分
这将从数据框中删除重复的列
df = df[list(df.columns[~df.columns.duplicated()])]
如果没有重复的列,则:
升级您的pandas
并确保它的版本高于1.1.0
。 在旧版本的熊猫中广播值存在一些问题。 我遇到了同样的问题,但它在 google colab 中运行良好,这就是我发现旧版本存在问题的原因,因为 colab 总是使用任何库的最新版本。
要升级熊猫使用:
pip install --upgrade pandas
我遇到过类似的问题,虽然这个问题很老但可能会对某人有所帮助。 我们有一个使用 python 库 0.25 的 python 代码,它工作正常但是当代码导入到带有 python 库 1.3.2 的 pod 时,它开始抛出以下错误:-
ERROR - Error in line 34 ValueError Buffer has wrong number of dimensions (expected 1, got 2)\nTraceback (most recent call last)
将版本降级到 0.25 可以解决问题,或者升级代码可以解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.