嗨,大家好,
我一直在寻找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) 我正在使用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构成的索引?
谢谢
我正在使用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)