Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串转换为系列中的浮点数_Python_String_Pandas_Csv_Series - Fatal编程技术网

Python 将字符串转换为系列中的浮点数

Python 将字符串转换为系列中的浮点数,python,string,pandas,csv,series,Python,String,Pandas,Csv,Series,我想用(13MB)数据集绘制“MJD”与“MJD_DUPLICATE”的对比图 DR14Q_pruned_repeats.csv“在此处找到:: 这是我的密码: import numpy as np import pandas as pd import matplotlib.pyplot as plt from astropy.table import Table from astropy.io import ascii from astropy.io import fits filename

我想用(13MB)数据集绘制“MJD”与“MJD_DUPLICATE”的对比图 DR14Q_pruned_repeats.csv“在此处找到::

这是我的密码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from astropy.table import Table
from astropy.io import ascii
from astropy.io import fits

filename = 'DR14Q_pruned_repeats.csv'
df = pd.read_csv(filename)

multiples = df[df["N_SPEC"] >2]

multiples.plot.scatter(x='MJD', y='N_SPEC')
plt.show()

multiples.plot.scatter(x='MJD', y='MJD_DUPLICATE')
plt.show()
MJD与MJD_重复打印线返回错误:

ValueError: scatter requires y column to be numeric
pd.to_数字行只返回NaNs。

您需要:

import ast

doubles   = df[df["N_SPEC"] ==2].copy()
multiples = df[df["N_SPEC"] >2].copy()
repeats   = df[df["N_SPEC"] >1].copy()

multiples.plot.scatter(x='MJD', y='N_SPEC')
plt.show()
将列
MJD\u DUPLICATE
string
s转换为元组,然后按位置选择值-例如
str[1]
作为元组的第二个值:

print (multiples['MJD_DUPLICATE'].head(10))
5      (0, 56279, 0, 56539, 0, 56957, -1, -1, -1, -1,...
85     (0, 56243, 0, 56543, 0, 57328, -1, -1, -1, -1,...
170    (0, 52262, 0, 55447, 0, 57011, -1, -1, -1, -1,...
200    (0, 52262, 0, 55443, 0, 57006, -1, -1, -1, -1,...
262    (0, 52525, 0, 55443, 0, 57011, -1, -1, -1, -1,...
277    (0, 51793, 0, 55531, 0, 57006, -1, -1, -1, -1,...
287    (0, 55182, 0, 55184, 0, 55443, -1, -1, -1, -1,...
313    (0, 56248, 0, 56245, 0, 56572, -1, -1, -1, -1,...
314    (0, 55182, 0, 55184, 0, 55444, -1, -1, -1, -1,...
324    (0, 52261, 0, 55184, 0, 55444, -1, -1, -1, -1,...
Name: MJD_DUPLICATE, dtype: object

ser = multiples['MJD_DUPLICATE'].apply(ast.literal_eval).str[1]
multiples['MJD_DUPLICATE'] = pd.to_numeric(ser, errors='coerce')

print (multiples['MJD_DUPLICATE'].head(10)) 
5      56279
85     56243
170    52262
200    52262
262    52525
277    51793
287    55182
313    56248
314    55182
324    52261
Name: MJD_DUPLICATE, dtype: int64

multiples.plot.scatter(x='MJD', y='MJD_DUPLICATE')
plt.show()
你需要:

import ast

doubles   = df[df["N_SPEC"] ==2].copy()
multiples = df[df["N_SPEC"] >2].copy()
repeats   = df[df["N_SPEC"] >1].copy()

multiples.plot.scatter(x='MJD', y='N_SPEC')
plt.show()
将列
MJD\u DUPLICATE
string
s转换为元组,然后按位置选择值-例如
str[1]
作为元组的第二个值:

print (multiples['MJD_DUPLICATE'].head(10))
5      (0, 56279, 0, 56539, 0, 56957, -1, -1, -1, -1,...
85     (0, 56243, 0, 56543, 0, 57328, -1, -1, -1, -1,...
170    (0, 52262, 0, 55447, 0, 57011, -1, -1, -1, -1,...
200    (0, 52262, 0, 55443, 0, 57006, -1, -1, -1, -1,...
262    (0, 52525, 0, 55443, 0, 57011, -1, -1, -1, -1,...
277    (0, 51793, 0, 55531, 0, 57006, -1, -1, -1, -1,...
287    (0, 55182, 0, 55184, 0, 55443, -1, -1, -1, -1,...
313    (0, 56248, 0, 56245, 0, 56572, -1, -1, -1, -1,...
314    (0, 55182, 0, 55184, 0, 55444, -1, -1, -1, -1,...
324    (0, 52261, 0, 55184, 0, 55444, -1, -1, -1, -1,...
Name: MJD_DUPLICATE, dtype: object

ser = multiples['MJD_DUPLICATE'].apply(ast.literal_eval).str[1]
multiples['MJD_DUPLICATE'] = pd.to_numeric(ser, errors='coerce')

print (multiples['MJD_DUPLICATE'].head(10)) 
5      56279
85     56243
170    52262
200    52262
262    52525
277    51793
287    55182
313    56248
314    55182
324    52261
Name: MJD_DUPLICATE, dtype: int64

multiples.plot.scatter(x='MJD', y='MJD_DUPLICATE')
plt.show()

这是可行的,但不符合我的要求。我需要保留MJD_副本中的所有数字数据,而不仅仅是第二列。是的,然后使用新名称创建新列
multiples['MJD_DUPLICATE_new']=pd.to_numeric(ser,errors='concurve')
并绘制它
multiples.plot.scatter(x='MJD',y='MJD_DUPLICATE_new')
根本无法绘制元组,需要标量。不,抱歉,我仍然认为这不起作用。当我查看MJD_DUPLICATE_新变量时,它只有上面给出的两列。我将在这里进一步挖掘,因为数据本身不利于迭代,但会回来!嗯,可能主要问题是您想如何转换
 MJD_DUPLICATE
列到普通非元组列?因为这是绘图所必需的。这可以工作,但不符合我的要求。我需要保留MJD_DUPLICATE中的所有数字数据,而不仅仅是第二列。是的,然后使用新名称创建新列
倍数['MJD_DUPLICATE_new']=pd.到数值(ser,errors='Procure')
并对其进行绘图
倍数、绘图、散布(x='MJD',y='MJD\u重复\u新')
根本无法绘制元组,需要标量。不,抱歉,我仍然认为这不起作用。当我查看MJD_DUPLICATE_新变量时,它只有上面给出的两列。我将在这里进一步挖掘,因为数据本身不利于迭代,但会回来!嗯,可能主要问题是您想如何转换
 MJD_将
列复制到普通非元组列?因为这是绘图所必需的。