目标:将一列添加到由标签组成的数据框中,如下所示:
(-10,5]=-2
(-5,0]= -1
[0,5) = 0
[5,10)= 1
[10,15)= 2
....ETC
如果df.ptdelta
介于两者之间(-10,5]
,则将 -2 添加到df
.
尝试1:
df=pd.read_csv("___.csv",names="a b c d e f".split())
df.set_index(["a", "b"], inplace=True)
d=df["d"]<5
u=df["d"]>=0
p=df["d"][d & u]
这似乎找不到任何实例:Series([], dtype=object)
df["d"]
但在这个范围内确实有双打。
尝试2:
zero=[x for x in df["d"] if (0<=df["d"]) & (df["d"]<5)]
结果是:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
为什么其中任何一个都失败了?非常感谢。
df.head() gives:
price ptdelta II pl
date time
date time price ptdelta II pl
1/5/2009 930 842 0 - 0
1620 845.2 3.2 - 6.6
1/6/2009 930 851.8 6.6 - -3.6
1620 848.2 -3.6 - -13