pandas 使用file.write()实现迭代的向量化替代方案

ebdffaop  于 2023-04-28  发布在  其他
关注(0)|答案(1)|浏览(117)

假设我们有一个pandas dataframe:

import pandas as pd

data = pd.DataFrame({'columnNM': ['Jerry', 'Bob', 'Phil', 'Bill', 'Mickey', 'Pigpen', 'Robert'], 
                     'columnNM2': ['John', 'Tom', 'Donna', 'Keith', 'Brent', 'Vince', 'Bruce']})

同样,假设我们有一个打开的文件,我们正在写入,它打开的文件使用:

file = open('myPathExample', 'w')

我想执行比较操作,控制数据流并写回该文件。一个简单的例子是:

for row in data.itertuples():
    file.write('%s was friends with %s \n' %(row.columnNM, row.columnNM2))

现在,我是python的初学者,我已经阅读了所有关于在pandas dataframe中循环或迭代行的文章,特别是对于大型数据集。我没有足够的知识来理解为什么。
在这个例子中,有没有一个很好的向量化迭代替代方案?如果有,是什么?

uxhixvfz

uxhixvfz1#

向量替代方案是构建一个字符串并向文件写入一次:

file.write('\n'.join(data['columnNM']+' was friends with '+data['columnNM2']))

或者,如果你想保持循环:

for line in (data['columnNM']+' was friends with '+data['columnNM2']+' \n'):
    file.write(line)

相关问题