1
目標:將列添加到由標籤的數據幀如下:數據幀操縱
(-10,5]=-2
(-5,0]= -1
[0,5) = 0
[5,10)= 1
[10,15)= 2
....等
如果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
感謝您的想法。看起來df ['d']對我的現有df [「d」]不是很好(包括雙精度):「TypeError:數組不能安全地轉換爲所需的類型」我試圖將它轉換爲列表,沒有工作。另外爲什麼你減去3? – 2013-03-15 20:57:01
''np.digitize''標記從1開始的bin。你標記從-2開始的bin。 – 2013-03-15 21:01:19
我不知道該怎麼做的錯誤。你可以發佈''df.head()''的輸出嗎? – 2013-03-15 21:02:01