【发布时间】:2016-03-07 14:04:07
【问题描述】:
我有一个包含大约 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]
我还是更喜欢更简单的解决方案。
【问题讨论】: