我需要迭代一个数据帧,对于每一行,我需要基于两个现有列创建一个ID:name和sex。最后,我将这个新列添加到df中
df = pd.read_csv(file, sep='\t', dtype=str, na_values="", low_memory=False)
row_ids = []
for index, row in df.iterrows():
if (index % 1000) == 0:
print("Row node index: {}".format(str(index)))
caculated_id = get_id(row['name', row['sex']])
row_ids.append(caculated_id)
df['id'] = row_ids
有没有一种方法可以让它更快而不必一排一排地走
根据建议的解决方案添加更多信息:
改用
apply
:如果您正在处理一个大型数据集,那么
np.vectorize()
应该有助于绕过apply()
开销,这应该会快一点编辑:
为了获得更高的速度,您也可以只传递函数
get_id
而不是使用lambda函数,并传递df.*.values
而不是df.*
尝试使用
tqdm
使用进度条显示进度,而不是在整个过程中打印进度的更新相关问题 更多 >
编程相关推荐