Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两个数据帧之间的条件格式,在第二个数据帧中,如果条件对第一个数据帧有效,我希望注释true_Python_Dataframe_Formatting_Conditional Statements - Fatal编程技术网

Python 两个数据帧之间的条件格式,在第二个数据帧中,如果条件对第一个数据帧有效,我希望注释true

Python 两个数据帧之间的条件格式,在第二个数据帧中,如果条件对第一个数据帧有效,我希望注释true,python,dataframe,formatting,conditional-statements,Python,Dataframe,Formatting,Conditional Statements,预期输出要求如下-在偏移列中“如果值介于或等于开始和结束之间,则备注列将标记为真” 这里有一个解决方案 import pandas as pd rows = [] #create rows offset=50 for i in range(0,1000,offset): rows.append([i, " "]) df = pd.DataFrame(rows, columns=["offset","Remark"])

预期输出要求如下-在偏移列中“如果值介于或等于开始和结束之间,则备注列将标记为真”

这里有一个解决方案


import pandas as pd
rows = [] #create rows
offset=50
for i in range(0,1000,offset):  
     rows.append([i, "   "])
df = pd.DataFrame(rows, columns=["offset","Remark"]) # First data frame 
First Data Frame
      offset Remark
0        0       
1       50       
2      100       
3      150       
4      200       
5      250       
6      300       
7      350       
8      400       
9      450       
10     500       
11     550       
12     600       
13     650       
14     700       
15     750       
16     800       
17     850       
18     900       
19     950  

#  second data frame imported from excel , which is as below

   Start  End
0     50  100
1    300  400
2    450  600
3    800  950
    offset       Remark
0        0       False  
1       50       True 
2      100       True 
3      150       False
4      200       False
5      250       False
6      300       True
7      350       True
8      400       True
9      450       True
10     500       True
11     550       True
12     600       True
13     650       False
14     700       False
15     750       False
16     800       True
17     850       True
18     900       True
19     950       True
query = (
    " | ".join(f"{v['Start']} <= offset <= {v['End']}" 
               for _, v in df2[['Start', 'End']].iterrows())
)

# query: 50 <= offset <= 100 | 300 <= offset <= 400 | ...
index_ = df.query(query).index

df['Remark'] = False
df.loc[index_, 'Remark'] = True
    offset  Remark
0        0   False
1       50    True
2      100    True
3      150   False
4      200   False
5      250   False
6      300    True
...