将Pandas系列字符串转换为F

2024-04-25 13:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df,其中一列是:

print(df['MJD_DUPLICATE'])

0         (0, 56238, -1, -1, -1, -1, -1, -1, -1, -1, -1,...
1         (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1...
2         (0, 56269, -1, -1, -1, -1, -1, -1, -1, -1, -1,...

简单地说,我如何把它转换成一个浮点数来绘制它呢?在

^{pr2}$

不起作用也不起作用:

for i in range(len(mjds)):
    mjds[i] = [float(x) for x in mjds[i]]

谢谢!!在

注意事项:

print(df['MJD_DUPLICATE'][0:][0:0])

(0, 56279, 0, 56539, 0, 56957, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
Series([], Name: MJD_DUPLICATE, dtype: object)

Tags: 数据indfforlen绘制rangefloat
2条回答

您是否尝试在dataframe中创建一个新列,该列是一个float,然后根据该列进行绘图?在

df['MJD_DUPLICATE_float'] = df['MJD_DUPLICATE'].astype(float)

编写一个转换单个行值的函数,然后使用^{}

data = {'a':[(' 1 ',' 2 ',' 3 '), ('2','3','4'), (3,4,5)],
        'b':[('1','2','3'), ('2','3','4'), ('3','4','5')]}

df = pd.DataFrame(data)

def f(thing):
    return tuple(float(n) for n in thing)

converted = df['a'].apply(f)
df['a'] = converted



>>> converted
0    (1.0, 2.0, 3.0)
1    (2.0, 3.0, 4.0)
2    (3.0, 4.0, 5.0)
Name: a, dtype: object
>>> df
                 a          b
0  (1.0, 2.0, 3.0)  (1, 2, 3)
1  (2.0, 3.0, 4.0)  (2, 3, 4)
2  (3.0, 4.0, 5.0)  (3, 4, 5)
>>>

如果你的数据是这样的

^{pr2}$

改变你的职能来处理它

def f(thing):
        thing = thing.strip()
        thing = thing.replace('(', '')
        thing = thing.replace(')', '')
        thing = thing.split(',')
        return tuple(float(n) for n in thing)

相关问题 更多 >