当列值等于某个值时,将行值作为列表获取

时间:2019-08-25 16:55:47

标签: python pandas

当列相等时,我想从df中提取整个行值作为列表。

我尝试了

df.loc['column'== x]

但是它给出列标题而不是列表

基本上我想要的是解析df中的每一行,并在df ['column'] == x时将整个行作为列表获取。我要解析的列是第一列(公司名称)。对于公司x,我想获取所有列中的值的列表(我不希望公司名称和列名出现在列表中。我只想要这些值)。 ps:公司名称中无重复

1 个答案:

答案 0 :(得分:0)

使用.loc()仅获取您感兴趣的行。然后将数据框变成列表列表。因此,您需要tyo获取这些值,然后使用Series中的tolist()方法将其转换为列表。

您可能想使用:

df.loc[df['column']==x].values.tolist()

看看this link

这里是一个示例:

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]]