相关疑难解决方法(0)

熊猫:转换为数字,必要时创建NaN

假设我在数据框中有一个列,其中包含一些数字和一些非数字

>> df['foo']
0       0.0
1     103.8
2     751.1
3       0.0
4       0.0
5         -
6         -
7       0.0
8         -
9       0.0
Name: foo, Length: 9, dtype: object
Run Code Online (Sandbox Code Playgroud)

如何将此列转换为np.float,并将其他所有不浮动的列转换为NaN

当我尝试:

>> df['foo'].astype(np.float)
Run Code Online (Sandbox Code Playgroud)

要么

>> df['foo'].apply(np.float)
Run Code Online (Sandbox Code Playgroud)

我明白了 ValueError: could not convert string to float: -

python pandas

41
推荐指数
4
解决办法
7万
查看次数

如何在使用Pandas从CSV读取整数时优雅地回退到"NaN"值?

在使用read_csvPandas时,如果我希望将给定列转换为类型,则格式错误的值将中断整个操作,而不会显示有问题的值.

例如,运行类似于:

import pandas as pd
import numpy as np


df = pd.read_csv('my.csv', dtype={ 'my_column': np.int64 })
Run Code Online (Sandbox Code Playgroud)

将导致以错误结束的堆栈跟踪:

ValueError: cannot safely convert passed user dtype of <i8 for object dtyped data in column ...
Run Code Online (Sandbox Code Playgroud)

如果我有错误消息中的行号或违规值,我可以将它添加到已知NaN值列表中,但这样我就无能为力了.

有没有办法告诉解析器忽略失败并np.nan在这种情况下返回?

Post Scriptum:有趣的是,在解析后没有任何类型的建议(没有dtype参数),d['my_column'].value_counts()似乎推断出dtype正确并np.nan自动正确放置,即使dtype系列的实际是一般的object,几乎每个绘图和统计操作都会失败

python csv data-processing pandas

6
推荐指数
1
解决办法
2753
查看次数

将科学记数法转换为十进制熊猫python

可能这是一个老问题,我在下面找到了类似的问题,但我仍然可以在输出文件中看到科学记数法。

抑制熊猫中的科学记数法?

熊猫读科学记数法和变化

Python Pandas 科学记数法图标一致

我试图合并set_optiondf.apply(pd.to_numeric, args=('coerce',))等下面,而没有工作我的代码。

df = pd.read_csv(Input)  

dfNew = df[['co_A','co_B','co_C']]  
# I firstly select columns from df then would like to convert scientific notation to decimal type in my output file.

dfNew.to_csv(Output, index = False, sep = '\t')
Run Code Online (Sandbox Code Playgroud)

我仍然可以在输出文件中看到科学记数法。任何人都可以帮忙吗?

co_A  co_B  co_C
167 0.0 59.6
168 0.0 60.6
191 8e-09   72.6
197 -4.7718e-06 12.3
197 0.0 92.4
198 0.0 39.5
Run Code Online (Sandbox Code Playgroud)

python-2.7 pandas

3
推荐指数
1
解决办法
3941
查看次数

标签 统计

pandas ×3

python ×2

csv ×1

data-processing ×1

python-2.7 ×1