这件事我已经想了好几个小时了。也许我遗漏了一些神秘的“明白了”,但这肯定是难以置信的反直觉。你知道吗
“trial\u unq”是两列数据帧,“trial\u unq2”是相同的副本,for循环在“unique\u in”中的所有字符串上循环。如果“unique\u in”在trial\u unq的文本中少于250次,则在trial\u unq的末尾插入一个布尔列。如果一个unqiue\u in在trial\u unq的文本中超过10000次,那么布尔列n将插入trial\u unq2的末尾。你知道吗
trial_unq2 = trial_unq
for i in range(len(unique_in)):#for each individual word
unq_count = trial_unq.brief_title.str.contains(unique_in[i]).sum()#count trial occurances
print(unique_in[i], ' ', unq_count)
if unq_count < 280 and unq_count > 0:
colname = unique_in[i]
colpos = len(trial_unq.columns)
boolcol = trial_unq.brief_title.str.contains(unique_in[i])
trial_unq.insert(colpos, colname, boolcol)
if unq_count > 10000:
colname2 = unique_in[i]
colpos2 = len(trial_unq2.columns)
boolcol2 = trial_unq2.brief_title.str.contains(unique_in[i])
trial_unq2.insert(colpos2, colname2, boolcol2)
print(trial_unq.columns)
print(trial_unq2.columns)
输出
['depressive', 'disorder', 'depressive disorder', 'therapy']
depressive 257
disorder 2190
depressive disorder 167
therapy 12236
Index(['NCT', 'brief_title', 'depressive', 'depressive disorder', 'therapy'], dtype='object')
Index(['NCT', 'brief_title', 'depressive', 'depressive disorder', 'therapy'], dtype='object')
从输出可以清楚地看到,小count trial\u unq数据帧和大count trial\u unq2数据帧都添加了三列。你知道吗
在Python中,多个名称可以引用同一个对象,例如
现在,
l1
和l2
都是这样的:两个数据帧也会发生同样的情况。你知道吗
在这种情况下,您可以简单地使用
.copy()
因此,要解决您的问题,您只需要:
相关问题 更多 >
编程相关推荐