你在找pivot。。。至少在提取出感興趣的行之後。在
在同一日期的,使用^{}和^{}:in [11]: res = df.loc[df.index.normalize().isin(df2.index), 'b']
in [12]: res
out[12]:
2005-09-06 16:00:00 5
2005-09-06 18:00:00 6
2005-09-06 20:00:00 7
2005-09-06 22:00:00 8
2005-12-07 16:00:00 8
2005-12-07 18:00:00 6
2005-12-07 20:00:00 4
2005-12-07 22:00:00 2
name: b, dtype: int64
一旦它以這種形式被轉移(如果有可能丟失資料,您可能必須使用^{}這是乙個更靈活的)!在
^$使用isin的行選擇的「肉」,檢查標準化為午夜的時間是否包含在df2.index中。在df.index.normalize().isin(df2.index)
如果我們還關心時間,我們可以使用^{}:in [15]: df.ix[df.index.indexer_between_time('18:00', '00:00'), 'b']
out[15]:
2005-09-06 18:00:00 6
2005-09-06 20:00:00 7
2005-09-06 22:00:00 8
2005-12-07 18:00:00 6
2005-12-07 20:00:00 4
2005-12-07 22:00:00 2
name: b, dtype: int64
好的,在這個例子中這些是相同的(因為只有我們想要的日期!),但一般來說,你真的希望這兩個條件(和他們)。。。在# i had tried to make this a one-liner but utterly failed!
in_time = np.zeros(len(df), dtype=bool)
in_time[df.index.indexer_between_time('18:00', '00:00')] = true
res = df.loc[df.index.normalize().isin(df2.index) & in_time, 'b']
in [17]: res
out[17]:
2005-09-06 16:00:00 5
2005-09-06 18:00:00 6
2005-09-06 20:00:00 7
2005-09-06 22:00:00 8
2005-12-07 16:00:00 8
2005-12-07 18:00:00 6
name: b, dtype: int64
可以對映透視結果的列:in [21]: pv = pd.pivot(res.index.time, res.index.normalize(), res.values)
in [22]: pv
out[22]:
2005-09-06 2005-12-07
18:00:00 6 6
20:00:00 7 4
22:00:00 8 2
in [23]: pv.columns = pv.columns.map(df2.num.get)
in [24]: pv
out[24]:
1 218:00:00 6 6
20:00:00 7 4
22:00:00 8 2
瞧。
python資料幀 Python資料幀
我有乙個dataframe df 並試圖將資料附加到特定的行 index fruit rank 0 banana 1 2 mango 3 3 melon 4 目標是將排名1的水果與每個等級進行比較,然後附加值。我在用difflib.sequencematcher做比較。現在我可以追加到df,但最後我...
python資料幀 Python資料幀行和列
我是乙個新的python建模者,目前在一行 中遇到了一些問題,這些 可能對很多人來說非常基礎。在 我使用的是python2.7,並成功地使用xlwings將乙個命名範圍從外部工作簿複製到pd資料幀格式。一切都很好除了測向索引以及資料框列.目前,將1分配給n 基於行數和列數 數字作為索引和列名。在 有...
python中DataFrame資料幀的統計方法
我們把每乙個column作為乙個樣本資料集,就可以對其進行一些統計學方法的計算,比如求和sum 求平均mean 求方差var 求標準差std 求個數count 求最大值max 求最小值min,等操作。我們用以下 來進行演示 import pandas as pd dict data df data ...