我知道这个话题已经解决了上千次。但是我找不到解决办法。
我正在尝试计算列表(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) 我有一个包含专栏专业和媒体的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)