【问题标题】:how to list unique names in a column of a dataframe? [duplicate]如何在数据框的列中列出唯一名称? [复制]
【发布时间】:2020-11-21 13:39:47
【问题描述】:

我想在 Pfam_domains 列中检索至少提到一次的所有名称。

这是我的数据框:

           TCID       Fonction        Genbank Uniprot Pfam_domains
0     3.A.1.1.1           MalE           MalE  P0AEX9      PF00528
1     3.A.1.1.1           MalF           MalF  P02916      PF01547
2     3.A.1.1.1           MalG           MalG  P68183      PF00528
3     3.A.1.1.1           MalK           MalK  P68187      PF00005
4     3.A.1.1.1           MalK           MalK  P68187      PF17912
..          ...            ...            ...     ...          ...
178  3.A.1.5.32  LAC30SC_07295  LAC30SC_07295  F0TFS7      PF00528
179  3.A.1.5.32  LAC30SC_07300  LAC30SC_07300  F0TFS8      PF00528
180  3.A.1.5.32  LAC30SC_07305  LAC30SC_07305  F0TFS9      PF00005
181  3.A.1.5.32  LAC30SC_07305  LAC30SC_07305  F0TFS9      PF08352
182  3.A.1.5.32  LAC30SC_07310  LAC30SC_07310  F0TFT0      PF00005

这是我的代码:

for i in range(1, len(df)-1):
    unite=pd.unique(df['Pfam_domains'][i])

这里的问题是我只列出了所有域(所有域的所有出现)。

这是我希望输出的内容:

"PF00528"
"PF01547"
"PF00005"
...

【问题讨论】:

  • 我认为您只是在寻找df.Pfam_domains.unique(),无需遍历每一行
  • 或者试试:df.Pfam_domains.value_counts()
  • 实际上,循环不是必需的。感谢您的帮助。

标签: python pandas dataframe unique col


【解决方案1】:

我相信这就是你要找的。​​p>

unite = df['Pfam_domains'].unique()
unite.sort()

【讨论】:

    【解决方案2】:

    首先按升序对值进行排序:

    df.Pfam_domains.value_counts().sort_values(ascending=False)
    

    根据数据框的定义,这将满足您对“至少提及一次”的值的要求。如果它们在数据框中 - 它们被“至少一次”提及。如果您实际上是在寻找不止一次出现的值,那么这也是一个很好的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      相关资源
      最近更新 更多