Python 如何将熊猫数据帧中的列从str(科学符号)转换为numpy.float64?

Python 如何将熊猫数据帧中的列从str(科学符号)转换为numpy.float64?,python,pandas,Python,Pandas,我试图将制表符分隔的文件读入pandas,但有一点需要注意:最后一列mean必须从表示科学记数法中的值的字符串转换为numpy.float64 到目前为止,我已经试过了 df = pd.DataFrame(pd.io.parsers.read_table(fle, converters={'mean': lambda x: np.float64(x)})) 但是我在df['mean']中得到的是0和-0 我还尝试在不使用转换器kwarg的情况下导入,然后通过执行df['mean'].astyp

我试图将制表符分隔的文件读入pandas,但有一点需要注意:最后一列mean必须从表示科学记数法中的值的字符串转换为numpy.float64

到目前为止,我已经试过了

df = pd.DataFrame(pd.io.parsers.read_table(fle, converters={'mean': lambda x: np.float64(x)}))
但是我在df['mean']中得到的是0和-0

我还尝试在不使用转换器kwarg的情况下导入,然后通过执行df['mean'].astypenp.float64来强制转换该列,结果类似

给出什么?

它们不是零。熊猫可能会在打印数据帧/系列时进行一些格式化,使它们看起来像零

顺便说一下,你不需要转换器。read_表正确地将它们标识为float64:

它们不是零。熊猫可能会在打印数据帧/系列时进行一些格式化,使它们看起来像零

顺便说一下,你不需要转换器。read_表正确地将它们标识为float64:


这已通过0.9版的pandas修复:

In [4]: df = pandas.read_table('http://dl.dropbox.com/u/6160029/gradStat_mmn.tdf')

In [5]: df.head()
Out[5]: 
   Subject Group Local Global  Attn          mean
0        1  DSub     S      S  Attn  3.252900e-22
1        1  DSub     S      S  Dist  6.010100e-22
2        1  DSub     D      S  Attn  4.215700e-22
3        1  DSub     D      S  Dist  8.308100e-22
4        1  DSub     S      D  Attn  2.983500e-22

这已通过0.9版的pandas修复:

In [4]: df = pandas.read_table('http://dl.dropbox.com/u/6160029/gradStat_mmn.tdf')

In [5]: df.head()
Out[5]: 
   Subject Group Local Global  Attn          mean
0        1  DSub     S      S  Attn  3.252900e-22
1        1  DSub     S      S  Dist  6.010100e-22
2        1  DSub     D      S  Attn  4.215700e-22
3        1  DSub     D      S  Dist  8.308100e-22
4        1  DSub     S      D  Attn  2.983500e-22

它们不是零。至少不在这里。pandas可能会对打印数据帧或序列进行一些格式化,因此它们显示为0/-0,因为它们非常小。试着打印df['mean'][0]。@Avaris,我可以吻你!你确实是对的!如果你想将此作为答案提交,我很乐意接受。它们不是零。至少不在这里。pandas可能会对打印数据帧或序列进行一些格式化,因此它们显示为0/-0,因为它们非常小。试着打印df['mean'][0]。@Avaris,我可以吻你!你确实是对的!如果您想提交此答复,我很乐意接受。