我有一个包含两列的数据集。每列包含一个整数列表。我想找到共同的第一个值。
下面是一个例子:
import pandas as pd
d = {'col1': [[1,2,3,5], [3,4,5]], 'col2': [[2,3,4], [3,5]]}
df = pd.DataFrame(data=d)
col1 col2
0 [1, 2, 3, 5] [2, 3, 4]
1 [3, 4, 5] [3, 5]
期望df包含每行的第一个公共数据:
d = {'result': [2,3]}
expect_df = pd.DataFrame(data=d)
result
0 2
1 3
4条答案
按热度按时间yiytaume1#
你可以使用iterrows和numpy.interst1d:
wb1gzix02#
使用
numpy.intersect1d
例程:envsm3lx3#
您可以使用
apply
并定义一个function
,它返回两个列表中的第一个公共项:expected_df
现在是:如果您想将结果添加回原始 Dataframe ,可以执行以下操作:
df
现在是:8cdiaqws4#
你需要在这里使用一个循环。一个带有列表解析的选项,以及一个
set
作为生成器表达式中的引用,其中next
:输出:
作为新列
输出:
建议解决方案的时间