小编Gio*_*des的帖子

Pandas 中的数据操作:从列上的值创建一个布尔列,然后用另一列中的值填充

好的,我已经尝试了太久了,是时候寻求帮助了。我有一个看起来有点像这样的数据框:

  person  fruit   quantity    all_fruits
0 p1      grapes  2           [grapes, banana]
1 p1      banana  1           [grapes, banana]
2 p2      apple   4           [apple, banana, peach]
3 p2      banana  4           [apple, banana, peach]
4 p2      peach   2           [apple, banana, peach]
5 p3      grapes  1           [grapes]
6 p4      banana  1           [banana]
7 p5      apple   3           [apple, peach]
8 p5      peach   2           [apple, peach]
Run Code Online (Sandbox Code Playgroud)

然后我有一个“感兴趣的水果”列表:

Fruits_of_interest: ['苹果', '香蕉']

我需要做的是:

  1. 为每个感兴趣的水果创建一个列,并为第 1 列(人)上的每个人指定她是否有那个水果

  2. 对于第 1 列中的每个人,指定该人在该水果列下感兴趣的水果数量的 log(1+x)

我正在努力完成这项工作!我的实际数据框非常大,接近 80 万行,并且“感兴趣的水果”列表有 300 多个“水果”,这无济于事。

对于第一部分,我使用了这个函数,并且可以获取所有带有布尔值的列,以显示是否有水果:

def has_fruit(fruit, …
Run Code Online (Sandbox Code Playgroud)

python function dataframe pandas data-wrangling

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

标签 统计

data-wrangling ×1

dataframe ×1

function ×1

pandas ×1

python ×1