下面是我保存在两个变量中的两个数据:
> print(df.head())
>
club_name tr_jan tr_dec year
0 ADO Den Haag 1368 1422 2010
1 ADO Den Haag 1455 1477 2011
2 ADO Den Haag 1461 1443 2012
3 ADO Den Haag 1437 1383 2013
4 ADO Den Haag 1386 1422 2014
> print(rankingdf.head())
>
club_name ranking year
0 ADO Den Haag 12 2010
1 ADO Den Haag 13 2011
2 ADO Den Haag 11 2012
3 ADO Den Haag 14 2013
4 ADO Den Haag 17 2014
new_df = df.merge(ranking_df, on=['club_name', 'year'], how='left')
> print(new_df.head())
>
club_name tr_jan tr_dec year ranking
0 ADO Den Haag 1368 1422 2010 12
1 ADO Den Haag 1455 1477 2011 13
2 ADO Den Haag 1461 1443 2012 11
3 ADO Den Haag 1437 1383 2013 14
4 ADO Den Haag 1386 1422 2014 17
其代码:
df = pd.DataFrame(data_points, columns=['club_name', 'tr_jan', 'tr_dec', 'year'])
df.to_csv('preliminary.csv')
df = pd.read_csv('preliminary.csv', index_col=0)
ranking_df = pd.DataFrame(rankings, columns=['club_name', 'ranking', 'year'])
new_df = df.merge(ranking_df, on=['club_name', 'year'], how='left')
我认为这与index_col=0参数有关。但我不知道在不保存它的情况下修复它,这并不重要,但我不得不这样做是一种烦恼。
在一个数据页中,year是字符串,另一个是int64,您可以先转换它,然后联接(例如df['year']=df['year'].astype(int)
或RafaelC建议的df.year.astype(int)
)
Edit:还请注意Anderson Zhu的注释:如果您的数据页中没有none
或缺少值,则需要使用int64
而不是int
。参见这里的参考资料。
问题内容: 这是我保存在两个变量中的两个数据框: 我正在尝试使用以下代码合并这两个: 添加how =’left’的原因是,我的ranking_df中的数据点少于标准df中的数据点。 预期的行为是这样的: 但是我得到这个错误: ValueError:您正在尝试合并object和int64列。如果要继续,则应使用pd.concat 但是我不希望使用concat,因为我想合并树而不只是添加它们。 我想到
我得合并两个DF。一个是我的主df,另一个有很多NaN 合并应该只是“忽略”NaN值,并且只在列值不是NaN的地方合并。我尝试了不同的方法,但是df2中的数据有几十种可能出现NaN值。df1有168K行,df2大约有170行,应该与任何与所有非NAN值匹配的相关联。有人知道如何有效地做到这一点吗? 经过对不同方法的广泛研究,似乎一个“神奇”的方式忽略NaNs可能是不存在的。我想在df2上应用一个掩
当尝试ViewChild时,我会得到错误。错误为“未提供'opts'的参数。” @ViewChild都给出了错误。 ts(11,2):错误TS2554:应为2个参数,但得到1。
这是我得到的错误:
Im使用okhttp 2.5.0,Im获取一张pic,然后将其转换为base 64格式,然后将其作为post变量发送到服务器,然后将其解码回jpg格式并保存到服务器....当我使用像1兆像素(0.5MB)的小图像时,它可以完美地工作······但是当我增加分辨率时,这个异常发生了...
我试图实现合并排序,但得到的输出是相同的数组。这种合并排序给了我与输入相同的输出。请帮忙。我很确定这个实现是正确的,我试着调试它,但没有发现错误。 解决:我在比较helper[左]和helper[中]而不是helper right。谢谢帮助的人。