如何合并两个具有不同键的数据帧



你能帮我处理一下我的情况吗?我想合并2个数据集,得到预期的结果如下:

Df 1:数据帧汇总每个ID的特征值如下:

tbody> <<tr>2
id feature 1 feature 2
11.23.4
2.31.2
33.56
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'id': [1, 2, 3], 'feature 1': [1.2, 2.3, 3.5], 'feature 2': [3.4, 1.2, 6]})
df2 = pd.DataFrame({'Feature': ['feature 1', 'feature 1', 'feature 1', 'feature 2', 'feature 2', 'feature 2'],
'Min': [0, 1, 2, 0, 4, 5], 'Max': [1, 2, np.inf, 4, 5, np.inf], 'segment': [1, 2, 3, 1, 2, 3]})

df1 = df1.set_index('id')
def func_data(x, q):
df = df2[df2['Feature'] == q]
ttt = np.where((x.values[0] >= df['Min']) & (x.values[0] <= df['Max']))
index = df1.index[ttt][0]
return index

df1['feature_1_segment'] = df1.groupby(['id'])['feature 1'].apply(func_data, 'feature 1')
df1['feature_2_segment'] = df1.groupby(['id'])['feature 2'].apply(func_data, 'feature 2')
df1 = df1.reset_index()
print(df1)

输出
id  feature 1  feature 2  feature_1_segment  feature_2_segment
0   1        1.2        3.4                  2                  1
1   2        2.3        1.2                  3                  1
2   3        3.5        6.0                  3                  3

这里,首先将'id'列设置为索引。创建一个'func_data '函数来确定每个数字属于哪个范围。np。其中来自numpy的函数用于测试范围。通过'id'获取索引

最新更新