相关疑难解决方法(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万
查看次数

如何向 Pandas 数据框添加唯一标识符列?

我有一个带有长字符串列的熊猫数据框。我想添加一个唯一标识符。我需要保留所有行,但重复的字符串应该获得相同的 ID。

我想稍后在合并中使用这个新的唯一标识符。

让我们创建一个 df:

df = pd.DataFrame({
     'longstrings': ['aaaaaaaa', 'asdfasdf', 'bbbbbbbbb', 'asdfasdf', 'aaaaaaaa'], 
     'somevalue': [1, 2, 3, 4, 5]})
Run Code Online (Sandbox Code Playgroud)

期望的输出:

  longstrings  somevalue  unique_ID
0    aaaaaaaa          1          0
1    asdfasdf          2          1
2   bbbbbbbbb          3          2
3    asdfasdf          4          1
4    aaaaaaaa          5          0
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用 groupby:

grouped = df.groupby('longstrings')
grouped.transform(lambda ???)
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何获得一个好的 lambda 函数。是否grouped有某种指标?

我还考虑过在我的字符串上使用哈希函数。但是,这不会创建方便的小数字。另外,哈希冲突的可能性有多大?我的字符串有时非常相似。

python-3.x pandas pandas-groupby

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