我有一个包含大约90k字符串的列表,以及一个包含多列的数据框,我有兴趣检查列表中的字符串是否在column_1中,以及它是否在column_2中分配了相同的值.
我可以做这个:
for i in range(len(my_list)):
item = list[i]
for j in range(len(df)):
if item == df['column_1'][j]:
df['column_2'][j] = item
但我宁愿避免嵌套循环
我试过这个
for item in my list:
if item in list(df['column _1']):
position = df[df['column_1']==item]].index.values[0]
df['column_2'][position] = item
但我认为这个解决方案更慢,更难阅读,这个操作可以通过简单的列表理解来完成吗?
编辑.
第二种解决方案相当快,大约一个数量级.
这是为什么?似乎在那种情况下它必须搜索两次马赫:
这里:
if item in list(df['column _1'])
和这里:
possition = df[df['column_1]=='tem]].index.values[0]
我仍然希望有一个更简单的解决方案.