【发布时间】:2021-11-03 06:39:51
【问题描述】:
基本上-我想附加房屋和地区列
- 然后找到两列的字符串长度;在这种情况下 House 263 --> (0, 8), dhaka (10,14), area(16,21)
- 另外,附上它们的相关标签(label1 列和 label2、label3)
- 为所有行执行此操作
我的预期输出-
[('House 263 dhaka', {'entities': [[(0, 8)], 'holding_number'], [(10,14), 'district'], [(16,21), 'area']})
我的代码-
TRAIN_DATA= [(k, {'entities': [[0, len(k.rpartition(' ')[0]) - 1, v['label1']], [k.rfind(' ') + 1, len(k) - 1, v['label2']], [k.rfind(' ') + 1, len(k) - 1, v['label3']]]}) for k, v in df.set_index(['house', 'district', 'area']).set_axis(df[['house', 'district', 'area']].agg(' '.join, axis=1)).to_dict('index').items()]
print(TRAIN_DATA)
我无法在 area 列下找到字符串的长度。我怎样才能找到它?另外,如果我有另一个这样的 6/7 列怎么办?谁能解释一下?
输入数据框- {'house':{0:'House 263',1:'House 31',2:'House 193/A'},'label1':{0:'holding_number',1:'holding_number',2:' holding_number'},'district':{0:'dhaka',1:'comilla',2:'chittagong'},'label2':{0:'district',1:'district',2:'district' }, 'area': {0: 'mirpur', 1: 'badda', 2: 'dohs'}, 'label3': {0: 'area', 1: 'area', 2: 'area'}}
【问题讨论】:
-
您可以将输入数据框作为文本提供吗? (使用
df.to_dict()并将其粘贴到您的答案中) -
我已经添加了
标签: python pandas list dataframe dictionary