Indexing 在数据帧中指定多个值

Indexing 在数据帧中指定多个值,indexing,pandas,lambda,Indexing,Pandas,Lambda,通过按“小时”列对数据帧进行分组,我计算了一些与该小时列相关的值 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

通过按“小时”列对数据帧进行分组,我计算了一些与该小时列相关的值

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]]
我想这应该用lambda地图来解决,但不知道怎么解决。
谢谢,Donatas我想您可能需要使用合并,例如:

pd.merge(data, m2, on = 'Hour')

这将适用于您并保持您的索引:

data['normalized_entries']=data['Hour'].map(m2.set_index('Hour').to_dict()['normalized_entries'])

您可以发布原始的
turnstile\u weather
csv文件吗?还是一些原始数据?对于您的问题,您应该使用
groupby.apply
method.pd.merge确实有效,但它也打乱了我的数据帧索引。