PythonPandas如何找到顶部串哪一个合作?

2024-09-28 21:01:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python pandas库生成了一个共现矩阵,代码如下:

# dfdo is an ordered dictionary with a key called KEY453    

df = pd.DataFrame(dfdo).set_index('KEY453')
df_asint = df.astype(int)
com = df_asint.T.dot(df_asint)

它遵循与this问题相同的过程。在

我的问题是,怎样才能找到矩阵中与给定字符串同时出现的前两个字符串?例如,在下面的例子中,与Dog同时出现的前两个字符串是Cat和Zebra。在

^{pr2}$

Tags: key字符串代码anpandasdfdictionaryis
2条回答

选项1
stack然后nlargest

df.stack().nlargest(1)

Cat  Zebra    3
dtype: int64

选项2
stack然后idxmax

^{pr2}$

我想你可以用^{}

print (df.loc['Dog'].nlargest(2))
Cat      2
Zebra    1
Name: Dog, dtype: int64

print (df.loc['Dog'].nlargest(2).index)
Index(['Cat', 'Zebra'], dtype='object')

如果需要DataFrame的所有值,请使用^{}

^{pr2}$

或者apply

print (df.apply(lambda x: pd.Series(x.nlargest(2).index, index=['first','second']), axis=1))
       first second
Cat    Zebra    Dog
Dog      Cat  Zebra
Zebra    Cat    Dog

相关问题 更多 >