我试图合并两个数据帧在一起。具有讽刺意味的是,它们一开始是作为同一个数据帧的一部分,但我正在迈出第一步——有时是在错误的方向上。 第1帧如下所示:
Int64Index: 10730 entries, 0 to 10729 Data columns (total 6 columns): RegionID 10730 non-null int64 RegionName 10730 non-null object State 10730 non-null object Metro 10259 non-null object CountyName 10730 non-null object SizeRank 10730 non-null int64 dtypes: int64(2), object(4)
第二帧如下:
^{pr2}$请注意,索引的类型相同,甚至具有相同的行数。
我正在尝试将数据帧合并到一起,如下所示:
df4 = pd.merge(df3, df2, how='inner', left_index=True, right_index=True)
我得到的错误是:
ValueError: can only call with other PeriodIndex-ed objects
2016Q1和第二个dataframe中类似名称的列是Period类型的,但是我没有合并它们——我想只要索引排成一行,merge就可以工作了?我做错什么了?在
实际上,我也遇到了同样的问题,也得到了整数列。在
而不是
我用过
^{pr2}$希望这有帮助
假设我们有以下DFs:
注意:
^{pr2}$df1.columns
属于PeriodIndex
数据类型merge
和join
将返回:ValueError: can only call with other PeriodIndex-ed objects
因为,AFAIK,Pandas DF不能有混合列数据类型,如果其中一些是PeriodIndex
数据类型:merge
引发相同的异常:因此我们必须将
df1.columns
转换为字符串:现在}将工作:
join
和{合并数据框的
dtypes
列:如果合并完成后需要},并在完成合并/合并后将其设置回:
df1.columns
作为PeriodIndex
,可以在转换它们之前保存{相关问题 更多 >
编程相关推荐