小编Jul*_*ien的帖子

Pandas用单位插入数据

嗨,大家好,

我一直在寻找Stackoverflow几年,它帮助了我很多,以至于我以前从来没有注册过:)

但今天我仍然坚持使用Python与熊猫和数量的问题(也可能是unum或品脱).我尽力做一个明确的帖子,但由于这是我的第一个,我道歉如果有些令人困惑,并会尝试纠正你会发现的任何错误:)


我想从源导入数据并构建Pandas数据帧,如下所示:

import pandas as pd
import quantities as pq

depth = [0.0,1.1,2.0] * pq.m
depth2 = [0,1,1.1,1.5,2] * pq.m

s1 = pd.DataFrame(
        {'depth' : [x for x in depth]},
        index = depth)
Run Code Online (Sandbox Code Playgroud)

这给出了:

S1=
     depth
0.0  0.0 m
1.1  1.1 m
2.0  2.0 m
Run Code Online (Sandbox Code Playgroud)

现在我想将数据扩展到depth2值:(显然没有指向深度插入深度,但在它变得更复杂之前它是一个测试).

s2 = s1.reindex(depth2)
Run Code Online (Sandbox Code Playgroud)

这给出了:

S2=
      depth
0.0   0.0 m
1.0   NaN
1.1   1.1 m
1.5   NaN
2.0   2.0 m
Run Code Online (Sandbox Code Playgroud)

到目前为止没问题.


但是当我尝试插入缺失的值时:

s2['depth'].interpolate(method='values')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

C:\Python27\lib\site-packages\numpy\lib\function_base.pyc in interp(x, xp, fp, left, right)
   1067         return …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

5
推荐指数
1
解决办法
1743
查看次数

Pandas - 使用apply floatededed dataframe创建一个新列

我正在使用pandas 13.0,我正在尝试使用apply()和函数名foo()创建一个新的colum.

我的数据框如下:

df = pandas.DataFrame({
         'a':[ 0.0,  0.1,  0.2,  0.3], 
         'b':[10.0, 20.0, 30.0, 40.0], 
         'c':[ 1.0,  2.0,  3.0,  4.0]
     })

df.set_index(df['a'], inplace=True)
Run Code Online (Sandbox Code Playgroud)

所以我的数据框是:

in: print df

out:
           a    b     c
      a
      0.0  0.0  10.0  1.0
      0.1  0.1  20.0  2.0
      0.2  0.2  30.0  3.0
      0.3  0.3  40.0  4.0 
Run Code Online (Sandbox Code Playgroud)

我的功能如下:

def foo(arg1, arg2):
    return arg1*arg2
Run Code Online (Sandbox Code Playgroud)

现在我想用foo()创建一个列名'd';

df['d'] = df.apply(foo(df['b'], df['c']), axis=1)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError: ("'Series' object is not callable", u'occurred at index 0.0')
Run Code Online (Sandbox Code Playgroud)

如何将pandas.apply()与foo()一起用于由float构成的索引?

谢谢

python pandas

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

熊猫:如何使用查询来选择最接近的值

我正在使用Pandas 0.13.0,我尝试得到两个最接近的值如下.

索引按递增值和唯一值排序.

import pandas as pd
import Quantities as pq

f = { 
    'A': [ 0.0,  0.1,  0.2,  0.5,  1.0] * pq.m,
    'B': [10.0, 11.0, 12.0, 15.0, 20.0] * pq.kPa,
    'C': [  a1,   b1,   c1,   d1,   e1]        
}

df = pd.DataFrame(f)

df.set_index(df['A'], inplace=True)
Run Code Online (Sandbox Code Playgroud)

DataFrame给出:

in: print df

out:
      A       B         C
A                 
0.00  0.00 m  10.0 kPa  a1
0.10  0.10 m  11.0 kPa  b1
0.20  0.20 m  12.0 kPa  c1 
0.50  0.50 m  15.0 kPa  d1
1.00  1.00 m …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

标签 统计

pandas ×3

python ×3

numpy ×1