这些是我的两个数据框保存在两个变量中:
> 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
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下代码合并这两个: …
所以我基本上得到了这个:
, pct_intl_student
2879 %
2880 9%
2881 NaN
2882 1%
2883 NaN
Name: pct_intl_student, Length: 2884, dtype: object
Run Code Online (Sandbox Code Playgroud)
是否可以通过一些简单的方法将所有字符串中的百分号更改为十进制数?基本上这个:
, pct_intl_student
2979 0
2880 0.09
2881 NaN
2882 0.01
2883 NaN
Name: pct_intl_student, Length: 2884, dtype: object
Run Code Online (Sandbox Code Playgroud)
我确实需要NaN值保持不变,之后它们将被转换为平均百分比数.问题还在于NaN值应该全部保持为NaN,而仅包含字符串'%'的行需要变为0.
我试过了:
df['pct_intl_student'] = df['pct_intl_student'].str.rstrip('%').astype('float') / 100.0
Run Code Online (Sandbox Code Playgroud)
但这引发了这个错误:
ValueError:无法将字符串转换为float:
所以我现在很茫然
希望有人可以帮助我.
我目前遇到两个问题:
我的数据框架如下所示:
, male_female, no_of_students
0, 24 : 76, "81,120"
1, 33 : 67, "12,270"
2, 50 : 50, "10,120"
3, 42 : 58, "5,120"
4, 12 : 88, "2,200"
Run Code Online (Sandbox Code Playgroud)
我想要实现的是:
, male, female, no_of_students
0, 24, 76, 81120
1, 33, 67, 12270
2, 50, 50, 10120
3, 42, 58, 5120
4, 12, 88, 2200
Run Code Online (Sandbox Code Playgroud)
基本上我想将male_female转换为两列,将no_of_students转换为整数列.我尝试了很多东西,将no_of_students列转换为另一种带有.astype的类型.但似乎没有什么工作正常,我也无法找到一个聪明的方法来正确分割male_female列.
希望有人可以帮助我!
因此,我基本上遵循了散景文档站点上有关处理分类数据的示例:
https://docs.bokeh.org/en/latest/docs/user_guide/categorical.html
最终我得到了这段代码(我简化了一点):
# dictionary with data for making a figure
data = {'continents' : continents,
'2016' : list2016,
'2017' : list2017,
'2018' : list2018 }
source = ColumnDataSource(data=data)
p = figure(x_range=continents, y_range=(0, 450), plot_height=250, title="University count per continent per year",
toolbar_location=None, tools="")
p.vbar(x=dodge('continents', -0.25, range=p.x_range), top='2016', width=0.2, source=source,
color="#c9d9d3", legend=value("2016"))
p.vbar(x=dodge('continents', 0.0, range=p.x_range), top='2017', width=0.2, source=source,
color="#718dbf", legend=value("2017"))
p.vbar(x=dodge('continents', 0.25, range=p.x_range), top='2018', width=0.2, source=source,
color="#e84d60", legend=value("2018"))
p.x_range.range_padding = 0.1
p.xgrid.grid_line_color = None
p.legend.location = "top_right"
p.legend.orientation = "horizontal"
Run Code Online (Sandbox Code Playgroud)
其中数据列有 …
所以我有这个数据帧:
filename width height class xmin ymin xmax ymax
0 128782.JPG 640 512 Panel 36 385 119 510
1 128782.JPG 640 512 Panel 124 388 207 510
2 128782.JPG 640 512 Panel 210 390 294 511
3 128782.JPG 640 512 Panel 294 395 380 510
4 128782.JPG 640 512 Panel 379 398 466 511
5 128782.JPG 640 512 Panel 465 402 553 510
6 128782.JPG 640 512 P+SD 552 402 638 510
7 128782.JPG 640 512 P+SD 558 264 638 …Run Code Online (Sandbox Code Playgroud) 所以我基本上得到了这个代码
#include <stdio.h>
int main()
{
int n = 0x7fffffff;
float f = n;
printf("%d\n", n);
printf("%f\n", f);
n = 0x00ffffff;
f = n;
printf("%d\n", n);
printf("%f", f);
}
Run Code Online (Sandbox Code Playgroud)
这给出了这个输出:
> 2147483647
> 2147483648.000000
> 16777215
> 16777215.000000
Run Code Online (Sandbox Code Playgroud)
为什么两个第一个数字之间存在差异,而不是第二个数字之间存在差异.我认为任何整数都可以用c中的任何浮点数表示.为什么会这样?