(为了清晰起见,我在labels_df中编辑了第一个列名)
我有两个DataFrames,train_df和labels_df。train_df具有映射到labels_df中属性名称的整数。我希望查找给定train_df单元中的每个数字,并在相邻单元中返回labels_df中相应的属性名。

我试过了下面的各种功能,但恐怕我有点走样了:
def my_mapping(df1, df2):
tags = df1['attribute_ids']
for i in tags.iteritems():
df1['new_col'] = df2.iloc[i]
return df1数据最初来自两个csv文件:
train.csv

labels.csv

我从丹尼那里试过这个
sample_train_df['attribute_ids'].apply(lambda x: [sample_labels_df[sample_labels_df['attribute_name'] == i]
['attribute_id_num'] for i in x])*请注意-由于原DFs的运行时间,我正在每个DF的样本上运行上述代码。返回:

发布于 2019-10-03 12:48:36
我创造了我自己的数据。
train.csv
id,attrib
1,1 2 3
2,3 4 5
3,2 3 5
4,1 1 1labels.csv
attrib_id,attrib_name
1,a
2,b
3,c
4,d
5,e读取csv文件并创建df1和df2
在那之后
def get_name(x):
result = []
for t in x.split(' '):
result.append(df2[df2['attrib_id']==int(t)]['attrib_name'].values[0])
return result
df1['attrib'] = df1['attrib'].apply(lambda x: get_name(x))这将导致df1看起来像

我想当你提到“丹尼”的时候,你也在做同样的事情。这里唯一重要的是将字符串转换为整数。
https://datascience.stackexchange.com/questions/61012
复制相似问题