【发布时间】:2022-01-07 05:21:03
【问题描述】:
我有一个数据框,你可以通过运行这段代码来获得它:
import numpy as np
import pandas as pd
from io import StringIO
df4s = """
LowerAge age 1 2 3 4
0 2 3 o.234 o.234 o.234 o.234
1 3 4 o.234 o.234 o.234 o.234
2 4 2 o.234 o.234 o.234 o.234
3 5 3 o.234 o.234 o.234 o.234
"""
df4 = pd.read_csv(StringIO(df4s.strip()), sep='\s+')
df4
输出是:
LowerAge age 1 2 3 4
0 2 3 o.234 o.234 o.234 o.234
1 3 4 o.234 o.234 o.234 o.234
2 4 2 o.234 o.234 o.234 o.234
3 5 3 o.234 o.234 o.234 o.234
现在逻辑是这样的:对于每一行,如果LowerAge-1
第一行LowerAge-1等于1且小于age,则'1'列的值(因为LowerAge-1等于1)将等于1,
第二行LowerAge-1等于2且小于age,则'2'列的值为1。
理想的输出应该是:
LowerAge age 1 2 3 4
0 2 3 1 o.234 o.234 o.234
1 3 4 o.234 1 o.234 o.234
2 4 2 o.234 o.234 o.234 o.234
3 5 3 o.234 o.234 o.234 o.234
我的代码是:
index_age = df4['LowerAge']-1
mask=index_age < df4['age']
df4.loc[mask, index_age.astype(str)]=1
我的输出:
LowerAge age 1 2 3 4
0 2 3 1 1 1 1
1 3 4 1 1 1 1
2 4 2 o.234 o.234 o.234 o.234
3 5 3 o.234 o.234 o.234 o.234
如果我想坚持使用口罩,我该怎么办,有朋友可以帮忙吗?
【问题讨论】:
-
检查它是o还是0
标签: python pandas dataframe numpy