在Python 3.x中,如何将包含分数字符串和NaN值的Dataframe列转换为浮点数?我已经尝试了一些方法,但是没有找到合适的解决方案。
因此,如果我有一个数据框“ df”,则它看起来像:
a b
0 John 20/1
1 Bob NaN
2 Tim 9/2
我怎样才能得到类似df的
a b
0 John 20.0
1 Bob 1000.0
2 Tim 4.5
感谢您愿意提供的任何指导!
答案 0 :(得分:0)
来自eval
的{{1}}的魔术师
pandas
答案 1 :(得分:0)
或使用apply
:
df.b = df.b.fillna(1000).apply(pd.eval)
现在:
print(df)
是:
a b
0 John 20.0
1 Bob 1000.0
2 Tim 4.5
答案 2 :(得分:0)
尝试以下方法:
df = df.fillna(1000.0)
df.b = [eval(str(e)) for e in df.b]
答案 3 :(得分:0)
// Query all reports and create shortcode
function report_get_listing($params) {
$reports = [];
$a = shortcode_atts( array(
'category' => '', // [report_listing category=""]
), $params );
$context = Timber::get_context();
$args = array(
'post_type' => 'report',
'orderby' => [
'weight' => 'ASC',
'post_date' => 'DESC'
],
'post_status' => 'publish',
'meta_query' => [
'weight' => [
'key' => 'weight',
'compare' => 'EXISTS',
'type' => 'NUMERIC'
],
],
);
// Check for a report category in the query
if (!empty($a['category'])) {
$args['tax_query'] = array(
array(
'taxonomy' => 'report_category',
'terms' => explode(',', $a['category']),
'field' => 'slug',
'operator' => 'IN',
),
);
}
query_posts($args);
$report_listing = Timber::get_posts($args);
foreach ($report_listing as $p) {
$reports[] = get_single_report($p);
}
$context['reports'] = $reports;
return Timber::compile('report/index.twig', $context);
}
add_shortcode('report_listing', 'report_get_listing');