我正在尝试合并来自两个不同大小的数据文件的信息。在下面的代码中,可以看到来自dataframe的捷径。
import pandas as pd
df1 = pd.DataFrame({'ID': [0,1,2,3,4,5,6],
'distance': [55.1, 55.2, 55.3, 55.4, 55.6, 55.7, 55.8 ],
'spec_location': ['','','','','','','',]})
df2 = pd.DataFrame({'ID': [0,1,2],
'start_distance': [55, 55.4, 55.8],
'end_distance': [55.4,55.8,56],
'location': ['PKS', 'DDS', 'LMS']})Dataframe 1是一个更详细的dataframe,我需要根据条件将信息从dataframe 2传输到dataframe 1。条件声明,如果距离(从df1)是之间的起点和终点距离(从df2)。df2中指定的位置应该在df1中的spec_location中填充。然后,这将产生一个如下所示的数据格式:
ID distance spec_location
0 0 55.1 PKS
1 1 55.2 PKS
2 2 55.3 PKS
3 3 55.4 PKS
4 4 55.6 DDS
5 5 55.7 DDS
6 6 55.8 DDS我尝试过各种循环和合并技术,但我似乎无法让它发挥作用。
发布于 2021-12-09 12:44:45
编写一个映射函数并应用它:
def location(x):
for _, row in df2.iterrows():
if row['start_distance'] < x <= row['end_distance']:
return row['location']
df1['spec_location'] = df1['distance'].apply(location)输出:
ID distance spec_location
0 0 55.1 PKS
1 1 55.2 PKS
2 2 55.3 PKS
3 3 55.4 PKS
4 4 55.6 DDS
5 5 55.7 DDS
6 6 55.8 DDShttps://stackoverflow.com/questions/70289225
复制相似问题