相关疑难解决方法(0)

Pandas transform()vs apply()

我不明白为什么applytransform在同一数据帧上调用时返回不同的dtypes.我之前解释这两个函数的方式是" apply折叠数据,transform完全相同apply但保留原始索引并且不会崩溃".考虑以下.

df = pd.DataFrame({'id': [1,1,1,2,2,2,2,3,3,4],
                   'cat': [1,1,0,0,1,0,0,0,0,1]})
Run Code Online (Sandbox Code Playgroud)

让我们识别那些idcat列中具有非零条目的s .

>>> df.groupby('id')['cat'].apply(lambda x: (x == 1).any())
id
1     True
2     True
3    False
4     True
Name: cat, dtype: bool
Run Code Online (Sandbox Code Playgroud)

大.但是,如果我们想创建一个指标列,我们可以执行以下操作.

>>> df.groupby('id')['cat'].transform(lambda x: (x == 1).any())
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    0
8    0
9    1
Name: cat, dtype: int64
Run Code Online (Sandbox Code Playgroud)

我不明白为什么dtype现在int64而不是any()函数返回的布尔值.

当我将原始数据框更改为包含一些布尔值时(注意零保持不变),转换方法会在object …

python transform apply pandas

14
推荐指数
2
解决办法
5582
查看次数

标签 统计

apply ×1

pandas ×1

python ×1

transform ×1