首页 > 解决方案 > 如何将二元组列出熊猫

问题描述

我的数据框中目前有一行,如下所示:

     bigrams                     other1     other2
[(me, you), (stack, overflow)] .................
[(me, you)]                    .................

我正在尝试将我的前 10 个二元组放入一个列表中,以便出于比较原因使用它。我尝试将我的前 10 个二元组复制并粘贴到一个列表中,如下所示:

list = ['(me, you)',  .....]

这行不通。有没有人有什么建议?谢谢。

标签: pythonpandas

解决方案


您可以使用itertools.chain(以展平“bigrams”列中的列表列表),然后使用pd.value_counts.

df = pd.DataFrame({'bigrams': [['(a, b)', '(c, d)'], ['(a, b)'], ['(a, b)', '(e, f)']]})
df
            bigrams
0  [(a, b), (c, d)]
1          [(a, b)]
2  [(a, b), (e, f)]

pd.__version__
# '0.24.1'

from itertools import chain

n = 2 # Find the top N
pd.value_counts(list(chain.from_iterable(df['bigrams']))).index[:n].tolist()
# ['(a, b)', '(e, f)']

推荐阅读