相关疑难解决方法(0)

熊猫:将类别转换为数字

假设我有一个数据框,其国家/地区如下:

cc | temp
US | 37.0
CA | 12.0
US | 35.0
AU | 20.0
Run Code Online (Sandbox Code Playgroud)

我知道有一个pd.get_dummies函数可以将这些国家/地区转换为"单热编码".但是,我希望将它们转换为索引,以便我得到它cc_index = [1,2,1,3].

我假设有一种比使用get_dummies和numpy where子句更快的方法,如下所示:

[np.where(x) for x in df.cc.get_dummies().values]

使用'因子'在R中这样做有点容易,所以我希望大熊猫有类似的东西.

python series binning pandas categorical-data

51
推荐指数
4
解决办法
5万
查看次数

按顺序计算每个组的熊猫

我有一个df,我按两列分组.我想按顺序计算每个组.下面的代码按顺序计算组中的每一行.这似乎比我想象的要容易,但无法弄清楚.

df = pd.DataFrame({
    'Key': ['10003', '10009', '10009', '10009',
            '10009', '10034', '10034', '10034'], 
    'Date1': [20120506, 20120506, 20120506, 20120506,
              20120620, 20120206, 20120206, 20120405],
    'Date2': [20120528, 20120507, 20120615, 20120629,
              20120621, 20120305, 20120506, 20120506]
})


df['Count'] = df.groupby(['Key','Date1']).cumcount() + 1
Run Code Online (Sandbox Code Playgroud)

预期结果:

    Date1       Date2       Key    Count
0   20120506    20120528    10003  1
1   20120506    20120507    10009  2
2   20120506    20120615    10009  2
3   20120506    20120629    10009  2
4   20120620    20120621    10009  3
5   20120206    20120305    10034  4
6   20120206    20120506    10034  4
7   20120405    20120506 …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas pandas-groupby

5
推荐指数
1
解决办法
94
查看次数