如何使用python获取值和列的列表?
我为努比的问题道歉,但是 我有一个dataframe(在python中使用pandas,带有标题),如下所示:如何使用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
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()