小编Han*_*nah的帖子

更快的替代方案

我知道这个话题已经解决了上千次。但是我找不到解决办法。

我正在尝试计算列表(df2.list2)的列中出现列表(df1.list1的每一行)的频率。所有列表仅包含唯一值。List1包含约300.000行,list2包含30.000行。

我有一个有效的代码,但是它的运行速度非常慢(因为我使用的是迭代程序)。我也尝试过itertuples(),但它给了我一个错误(“要解压缩的值太多(预期2)”)。我在网上发现了一个类似的问题:熊猫计算包含在list列中的list的出现。在提到的情况下,此人仅考虑一列列表中出现一个列表。但是,我无法解决问题,因此将df1.list1中的每一行都与df2.list2进行了比较。

那就是我的列表的样子(简化):

df1.list1

0   ["a", "b"]
1   ["a", "c"]
2   ["a", "d"]
3   ["b", "c"]
4   ["b", "d"]
5   ["c", "d"]


df2.list2

0    ["a", "b" ,"c", "d"]
1    ["a", "b"] 
2    ["b", "c"]
3    ["c", "d"]
4    ["b", "c"]
Run Code Online (Sandbox Code Playgroud)

我想提出的是:

df1

    list1         occurence   
0   ["a", "b"]    2
1   ["a", "c"]    1
2   ["a", "d"]    1
3   ["b", "c"]    3
4   ["b", "d"]    1
5   ["c", "d"]    2
Run Code Online (Sandbox Code Playgroud)

那就是我到目前为止所得到的:

for index, row in df_combinations.iterrows():
    df1.at[index, "occurrence"] = …
Run Code Online (Sandbox Code Playgroud)

python lambda list apply pandas

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

计算字符串列之间的相关性

我有一个包含专栏专业和媒体的df。我想计算这两列之间的相关性。

有一个简短的技巧来计算字符串列的相关性吗?还是我已将每个专业和媒体转换为一个数字,然后使用.corr()计算相关性?

我发现了一个类似的问题(是否有办法与字符串数据和熊猫中的数值建立关联?),但我想检查字符串,而不是字符串中的每个单词。

df

  profession        media      

0 media lawyer      print
1 student           online
2 student           print
3 professor         online
4 media lawyer      online
Run Code Online (Sandbox Code Playgroud)

python string correlation pandas

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

标签 统计

pandas ×2

python ×2

apply ×1

correlation ×1

lambda ×1

list ×1

string ×1