相关疑难解决方法(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数据帧转换为pandas中的整数(0.17.0)

我的问题与非常相似,但我需要转换整个数据帧而不仅仅是一系列.该to_numeric函数一次只能在一个系列上运行,并且不能替代已弃用的convert_objects命令.有没有办法convert_objects(convert_numeric=True)在新的pandas版本中获得与命令类似的结果?

谢谢MikeMüller的例子.df.apply(pd.to_numeric)如果值都可以转换为整数,则效果很好.如果在我的数据框中我有无法转换为整数的字符串怎么办?例:

df = pd.DataFrame({'ints': ['3', '5'], 'Words': ['Kobe', 'Bryant']})
df.dtypes
Out[59]: 
Words    object
ints     object
dtype: object
Run Code Online (Sandbox Code Playgroud)

然后我可以运行已弃用的函数并获取:

df = df.convert_objects(convert_numeric=True)
df.dtypes
Out[60]: 
Words    object
ints      int64
dtype: object
Run Code Online (Sandbox Code Playgroud)

运行该apply命令会给我带来错误,即使是尝试和处理也是如此.

python pandas

33
推荐指数
2
解决办法
5万
查看次数

将pypeas.Series从dtype对象转换为float,将错误转换为nans

考虑以下情况:

In [2]: a = pd.Series([1,2,3,4,'.'])

In [3]: a
Out[3]: 
0    1
1    2
2    3
3    4
4    .
dtype: object

In [8]: a.astype('float64', raise_on_error = False)
Out[8]: 
0    1
1    2
2    3
3    4
4    .
dtype: object
Run Code Online (Sandbox Code Playgroud)

我本来期望一个允许转换的选项,同时将错误的值(例如那个.)转换为NaNs.有没有办法实现这个目标?

python pandas

24
推荐指数
2
解决办法
9万
查看次数

标签 统计

pandas ×3

python ×3