python字典类型的维度_n维度表查找:数组、数据帧还是字典?

我正在尝试找到进行n维表查找的最佳方法。在本例中,有一个dataframe,它包含一个人的状态和年份,我想通过在表(可以是数组、数据帧或字典)中查找相关税率来查找。首先,考虑通过一个数组来实现:nobs = 4

df = DataFrame( { 'state' : np.tile( [ 'tx', 'ny'], nobs/2 ),

'year' : np.tile( [ 2008, 2008, 2009, 2009 ], nobs/4 ) } )

dct = { 'tx':0, 'ny':1 }

# rows are 2008 and 2009, columns are 'tx' and 'ny'

rate_arr = np.array( [[.05,.06],

[.08,.09]] )

df['rate1'] = rate_arr[ df.year-2008, df.state.map(dct) ]

state year rate1

0 tx 2008 0.05

1 ny 2008 0.06

2 tx 2009 0.08

3 ny 2009 0.09

以上正是我想要的,我只想看看有没有更好的方法。比如,有什么好的方法来标记numpy数组?在

使用dataframe作为查找似乎可以自动转换状态和年份值,但我只能使其适用于一个维度,而不是两个维度:

^{pr2}$

或者,也许是嵌套字典?同样,我可以在一个维度而不是两个维度上实现:rate_dict = { 'tx': { 2008: .05, 2009: .08 },

'ny': { 2008: .06, 2009: .09 } }

# doesn't work

df['rate2'] = df.year.map( df.state.map(rate_dict) )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值