Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python获取值和列的列表?_Python_Arrays_Pandas_List_Dataframe - Fatal编程技术网

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

如何使用python获取值和列的列表?,python,arrays,pandas,list,dataframe,Python,Arrays,Pandas,List,Dataframe,我为努比的问题道歉,但是 我有一个dataframe(在python中使用pandas,带有标题),如下所示: Pink Blue Yellow Green --------- ------- -------- ------- Jackson Bryan Bruce Benji James Jonah Jenny Kevin Tyson Jenna Mike none Kendall

我为努比的问题道歉,但是

我有一个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    

如果我没弄错的话,您需要所有的列名+值对。您可以这样做:

 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
array([['Pink', 'Jackson'],
       ['Pink', 'James'],
       ['Blue', 'Bryan'],
       ['Blue', None]], dtype=object)
如果您只想要一个二维numpy数组,可以执行以下操作:

pd.melt(df).values
结果:

  variable    value
0     Pink  Jackson
1     Pink    James
2     Blue    Bryan
3     Blue     None
array([['Pink', 'Jackson'],
       ['Pink', 'James'],
       ['Blue', 'Bryan'],
       ['Blue', None]], dtype=object)

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

除了前面的答案之外,我建议过滤掉
None

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

那么你想要所有的列名+值对吗?这能回答你的问题吗?请告诉我:要获得列表,可以在值之后添加.tolist()