【发布时间】:2016-06-20 15:42:43
【问题描述】:
我想比较两个单独列上的相邻行。我有一个dataframe,有两列,Letter 和Boolean_Value。我想创建一个新列New Col,其中的值为True 或False。
为真值:
下一行(更高的索引)必须共享相同的 Letter 值,并且下一行的 Boolean_Value 必须为 True。
为假值:
所有其他场景
我的代码,产生所有错误值:
import pandas as pd
df = pd.DataFrame(data=[['A', False],
['A', True],
['B', False],
['B', False],
['B', True]]
,columns=['Letter', 'Boolean_Value'])
def my_test2(row):
try:
if row['Letter'].shift(1) == row['Letter'] and row['Boolean_Value'].shift(1) == True:
return True
else:
return False
except:
return False
df['New Col'] = df.apply(my_test2, axis=1)
print df
产量:
Letter Boolean_Value New Col
0 A False False
1 A True False
2 B False False
3 B False False
4 B True False
期望的输出:
Letter Boolean_Value New Col
0 A False True
1 A True False
2 B False False
3 B False True
4 B True False
【问题讨论】:
标签: python python-2.7 pandas dataframe