相关疑难解决方法(0)

将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".convert_objects(convert_numeric = True)"已弃用

我的代码中有这一行将数据转换为数字...

data["S1Q2I"] = data["S1Q2I"].convert_objects(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)

问题是现在新的pandas发布(0.17.0)说这个函数已被弃用..这是错误:

FutureWarning: convert_objects is deprecated.  
Use the data-type specific converters pd.to_datetime, 
pd.to_timedelta and pd.to_numeric. 
data["S3BD5Q2A"] = data["S3BD5Q2A"].convert_objects(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)

所以,我去了新的文档,我找不到任何如何使用新函数转换我的数据的例子......

它只说这个:

"不推荐使用DataFrame.convert_objects,而选择类型特定的函数pd.to_datetime,pd.to_timestamp和pd.to_numeric(0.17.0中的新增功能)(GH11133)."

你能帮忙的话,我会很高兴!

python pandas

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

熊猫读科学记数法和变化

我在 Pandas 中有一个数据框,我正在从 csv 中读取它。

我的一个列有值,其中包括NaNfloats,和科学记数法,即5.3e-23

我的问题是,当我在 csv 中阅读时,pandas 将这些数据视为object dtype,而不是float32应该的。我猜是因为它认为科学记数法条目是字符串。

我尝试df['speed'].astype(float)在读入后使用 using 转换 dtype ,并尝试在使用df = pd.read_csv('path/test.csv', dtype={'speed': np.float64}, na_values=['n/a']). 这会引发错误ValueError: cannot safely convert passed user dtype of <f4 for object dtyped data in column ...

到目前为止,这两种方法都没有奏效。我是否错过了一些非常容易修复的东西?

这个问题似乎表明我可以指定可能会引发错误的已知数字,但如果可能的话,我更愿意将科学记数法转换回浮点数。

编辑以在评论中显示来自 CSV 的数据

7425616,12375,28,2015-08-09 11:07:56,0,-8.18644,118.21463,2,0,2
7425615,12375,28,2015-08-09 11:04:15,0,-8.18644,118.21463,2,NaN,2
7425617,12375,28,2015-08-09 11:09:38,0,-8.18644,118.2145,2,0.14,2
7425592,12375,28,2015-08-09 10:36:34,0,-8.18663,118.2157,2,0.05,2
65999,1021,29,2015-01-30 21:43:26,0,-8.36728,118.29235,1,0.206836151554794,2
204958,1160,30,2015-02-03 17:53:37,2,-8.36247,118.28664,1,9.49242000872744e-05,7
384739,,32,2015-01-14 16:07:02,1,-8.36778,118.29206,2,Infinity,4
275929,1160,30,2015-02-17 03:13:51,1,-8.36248,118.28656,1,113.318511172611,5
Run Code Online (Sandbox Code Playgroud)

python csv pandas

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

将pandas dataframe中的列从String转换为Float

我已经阅读了各种解决方案,并尝试了此处所述的解决方案:Pandas:转换为数字,必要时创建NaN

但它并没有真正解决我的问题:我有一个包含多个列的数据框,其中一列['PricePerSeat_Outdoor']包含一些浮点值,一些空值和一些'-'

    print type(df_raw['PricePerSeat_Outdoor'][99])
    print df_raw['PricePerSeat_Outdoor'][95:101]
    df_raw['PricePerSeat_Outdoor'] = df_raw['PricePerSeat_Outdoor'].apply(pd.to_numeric, errors='coerce')
    print type(df_raw['PricePerSeat_Outdoor'][99]) 
Run Code Online (Sandbox Code Playgroud)

然后我得到了:

<type 'str'>
95     17.21
96     17.24
97         -
98         -
99      17.2
100    17.24
Name: PricePerSeat_Outdoor, dtype: object
<type 'str'>
Run Code Online (Sandbox Code Playgroud)

第98行和第99行的值未转换.同样,我已经尝试过多种方法,包括以下但是它没有用.非常感谢,如果有人能给我一些提示.

df_raw['PricePerSeat_Outdoor'] = df_raw['PricePerSeat_Outdoor'].apply(pd.to_numeric, errors='coerce')

另外,如何将多个列一次转换为数字?谢谢.

python typeconverter dataframe pandas

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

如何将数据帧中的非数字转换为NaN(numpy)?

例如,有这样一个数据帧:

   a     b
   --------
   10  ...
   4    5
   ...  6
Run Code Online (Sandbox Code Playgroud)

如何将其转换为:

   a    b
   --------
   10  NaN
   4   5
   NaN 6
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

python numpy pandas

4
推荐指数
1
解决办法
430
查看次数

标签 统计

pandas ×5

python ×5

csv ×1

dataframe ×1

numpy ×1

typeconverter ×1