当列相等时,我想从df
中提取整个行值作为列表。
我尝试了
df.loc['column'== x]
但是它给出列标题而不是列表
基本上我想要的是解析df中的每一行,并在df ['column'] == x时将整个行作为列表获取。我要解析的列是第一列(公司名称)。对于公司x,我想获取所有列中的值的列表(我不希望公司名称和列名出现在列表中。我只想要这些值)。 ps:公司名称中无重复
答案 0 :(得分:0)
使用.loc()
仅获取您感兴趣的行。然后将数据框变成列表列表。因此,您需要tyo获取这些值,然后使用Series中的tolist()
方法将其转换为列表。
您可能想使用:
df.loc[df['column']==x].values.tolist()
In [1]:
import pandas as pd
ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'],
'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2],
'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017],
'Points':[876,789,863,673,741,812,756,788,694,701,804,690]}
df = pd.DataFrame(ipl_data)
df.loc[df['Team']=='Riders'].values.tolist()
Out [1]:
[['Riders', 1, 2014, 876],
['Riders', 2, 2015, 789],
['Riders', 2, 2016, 694],
['Riders', 2, 2017, 690]]