我的数据框df
包含[ShowOnAir, AfterPremier, ID, EverOnAir]
列。
我的条件是那个
如果它是groupby(df.ID)
的第一个元素
然后if (df.ShowOnAir ==0 or df.AfterPremier == 0)
,然后EverOnAir = 0
else EverOnAir = 1
我不确定如何将groupby
的第一个元素与orignal数据帧df
的元素进行比较。
真的很感激,
谢谢
答案 0 :(得分:0)
您可以使用{% block scripts %}
{{ super() }}
<script type="text/Javascript">
$("input#my_focus_field_id").focus()
</script>
{% endblock %}
为您的论坛获取行号,然后您可以对结果数据框执行逻辑操作:
cumsum
答案 1 :(得分:0)
您可以先创建填充EverOnAir
的新列1
。然后ID
f
和groupby
自定义函数0
,apply
按where找到列的第一个元素并填充print df
ShowOnAir AfterPremier ID
0 0 0 a
1 0 1 a
2 1 1 a
3 1 1 b
4 1 0 b
5 0 0 b
6 0 1 c
7 1 0 c
8 0 0 c
def f(x):
#print x
x['EverOnAir'].iat[0] = np.where((x['ShowOnAir'].iat[0] == 0 ) |
(x['AfterPremier'].iat[0] == 0), 0, 1)
return x
df['EverOnAir'] = 1
print df.groupby('ID').apply(f)
ShowOnAir AfterPremier ID EverOnAir
0 0 0 a 0
1 0 1 a 1
2 1 1 a 1
3 1 1 b 1
4 1 0 b 1
5 0 0 b 1
6 0 1 c 0
7 1 0 c 1
8 0 0 c 1
:
background-attachment: scroll