我正在使用熊貓分析財務記錄。在日期範圍內切片熊貓數據框
我有一個來自一個CSV文件看起來像這樣一個DataFrame
:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 800 entries, 2010-10-27 00:00:00 to 2011-07-12 00:00:00
Data columns:
debit 800 non-null values
transaction_type 799 non-null values
transaction_date_raw 800 non-null values
credit 800 non-null values
transaction_description 800 non-null values
account_number 800 non-null values
sort_code 800 non-null values
balance 800 non-null values
dtypes: float64(3), int64(1), object(4)
我基於交易量選擇一個子集:
c1 = df['credit'].map(lambda x: x > 1000)
milestones = df[c1].sort()
,並希望創建的切片原始DF基於里程碑之間的日期:
delta = dt.timedelta(days=1)
for i in range(len(milestones.index)-1):
start = milestones.index[i].date()
end = milestones.index[i+1].date() - delta
rng = date_range(start, end)
th將生成一個新的系列,其中包含我的里程碑之間的日期。
<class 'pandas.tseries.index.DatetimeIndex'>
[2010-11-29 00:00:00, ..., 2010-12-30 00:00:00]
Length: 32, Freq: D, Timezone: None
我跟了幾種方法使用這些新系列(RNG)切開我的DF,但都失敗了:
df.ix[start:end] or
df.ix[rng]
這引起了:IndexError:無效片
df.reindex(rng) or df.reindex(index=rng)
提出:例外:Reindexing只對唯一有價值的索引對象有效
x = [v for v in rng if v in df.index]
df[x]
df.ix[x]
df.index[x]
這也引起了無效片,也是如此:
df.truncate(start, end)
我是新來的大熊貓,我正在關注的書從奧賴利的提前釋放,充分地享受它。任何指針將不勝感激。
我發現上面的「hackish」解決方案 – 2012-07-10 15:31:03