繁体   English   中英

如何使用 python 获取列表值和列?

[英]How do I get a list values and columns using python?

为这个愚蠢的问题道歉,但是....

我有一个 dataframe(在 python 中使用 pandas,带有标题),看起来像这样:

   Pink     Blue    Yellow   Green  
 --------- ------- -------- ------- 
  Jackson   Bryan   Bruce    Benji  
  James     Jonah   Jenny    Kevin  
  Tyson     Jenna   Mike     none   
  Kendall   Amy     Alison   none   
  Ben       none    none     none   

如何获得如下所示的团队和名称列表?

  Pink    Jackson  
  Pink    James    
  Blue    Bryan    
  ...              
  Green   Kevin    

如果我做对了,您希望拥有所有列名 + 值对。 pd.melt可以为您做到这一点:

 df = pd.DataFrame({"Pink": ["Jackson", "James"], "Blue": ["Bryan", None]})
 pd.melt(df)

结果:

  variable    value
0     Pink  Jackson
1     Pink    James
2     Blue    Bryan
3     Blue     None

如果你只想要一个二维 numpy 数组,你可以这样做:

pd.melt(df).values

结果:

array([['Pink', 'Jackson'],
       ['Pink', 'James'],
       ['Blue', 'Bryan'],
       ['Blue', None]], dtype=object)

正如 matman9 指出的那样,只需在 .values 之后添加一个.values .tolist()即可获得 python 列表。

除了较早的答案,我建议过滤掉None

for t in filter(lambda x: x[1], pd.melt(df).values.tolist()):
    print('{:8} {}'.format(*t))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM