当单元格中的值是列表时,Pandas数据帧条件

时间:2016-02-07 15:14:57

标签: python list pandas dataframe

如果同一行中x列的值为列表B,我如何在列[0,1]中找到单元格的值?

AB中的每个单元格都是列表的整数。

               x      y       A       B 
0           ding   ding    [0, 1]  [0, 0] 
1           ding   dong    [0, 1]  [0, 1] 
2           ding   ding    [0, 1]  [0, 0] 
3           ding   ding    [0, 1]  [0, 0]  
4           ding   dong    [0, 1]  [0, 1] 
5           ding   ding    [0, 1]  [0, 0] 
6           ding   ding    [0, 1]  [0, 0] 

1 个答案:

答案 0 :(得分:1)

IIUC您可以使用与Series相同的索引创建DataFrame,并将其与列B进行比较:

s = pd.Series([[0, 1]], index = df.index)
print s
0    [0, 1]
1    [0, 1]
2    [0, 1]
3    [0, 1]
4    [0, 1]
5    [0, 1]
6    [0, 1]
dtype: object

print df['B'] == s
0    False
1     True
2    False
3    False
4     True
5    False
6    False
dtype: bool

print df[df['B'] == s]
      x     y       A       B
1  ding  dong  [0, 1]  [0, 1]
4  ding  dong  [0, 1]  [0, 1]

print df.x[df['B'] == s]
1    ding
4    ding
Name: x, dtype: object