【发布时间】:2022-01-01 20:33:35
【问题描述】:
我在一个包含两列(学生 ID、问题 ID)的 csv 文件中有 1500 万行,每个学生回答多个问题,因此您会多次找到相同的学生 ID。和另一个具有 187000 行和两列(学生 ID,性别)的 csv 文件,我想在第一个名为“性别”的 csv 文件中添加一个新列,它代表 1500 万学生的性别(即使学生 ID 重复) 我使用 colaboratory(GPU 运行时类型)尝试此代码,会话在 3:40 小时后崩溃。 那么我会怎么做才能避免这种情况,并执行高速?
读取数据大约需要 7 秒
import pandas as pd
df=pd.read_csv('/content/drive/MyDrive/file1.csv')
dg=pd.read_csv('/content/drive/MyDrive/file2.csv')
但是处理中的问题:
df['Gender']=range(0,15000000)
for i in range(len(df.StudentId)):
for k in range(len(dg.StudentId)):
if df.StudentId[i] == dg.StudentId[k]:
df.Gender[i]=dg.Gender[k]
【问题讨论】:
-
简单答案:不要使用循环,而是使用矢量代码。现在具体来说,您应该提供一个数据示例和匹配的输出
-
你为什么要这样循环数据框?
-
我添加一张图片描述我需要什么,请看
标签: python csv google-colaboratory