通過按'小時'列對我的數據框進行分組,我計算了一些有條件的小時列值。熊貓DataFrame分配多個值
Out[15]:
normalized_entries Hour
3 0.000563 3
6 0.001265 6
23 0.002392 23
7 0.002655 7
2 0.002962 2
15 0.003095 15
11 0.004472 11
19 0.005776 19
14 0.008059 14
5 0.008163 5
22 0.008319 22
10 0.009102 10
18 0.011684 18
4 0.016871 4
1 0.034377 1
8 0.038017 8
13 0.065110 13
0 0.074780 0
9 0.076391 9
17 0.087821 17
21 0.090782 21
16 0.119952 16
12 0.157843 12
20 0.169550 20
問題是我怎樣才能將這些值分配給我的主數據框依賴和'小時'列。 我試過自己:
data = pandas.read_csv(turnstile_weather)
data = data[['Hour','ENTRIESn_hourly']]
data['normalized_entries'] = data['Hour']
data_by_hour = data.groupby(['Hour'])
data_by_totalh = data_by_h.sum()
data_by_totalh = data_by_totalh.reset_index()
m= data_by_totalh.sort(columns='ENTRIESn_hourly')
m['normalized_entries']=m['ENTRIESn_hourly']/m['ENTRIESn_hourly'].sum()
# plot = ggplot(data_by_totalh,aes('Hour','ENTRIESn_hourly')) + geom_histogram(position='stack',stat='identity')
m2 = m[['normalized_entries','Hour']]
for i in range(1,len(data['Hour'])):
data['normalized_entries'][i] = m2['normalized_entries'][data['Hour'][i]]
我猜想這應該與拉姆達地圖來解決,但無法弄清楚如何。 謝謝,多納塔斯
你能後的原'turnstile_weather' csv文件?或一些原始數據?對於你的問題,你應該使用'groupby.apply'方法。 –