提问者:小点点

巨蟒熊猫分裂DF


请查看下面的代码,有没有更有效的方法将一个DF分成两个? 在下面的代码中,查询运行两次。 如果只运行一次查询,基本上说如果为真,发送到DF1,否则发送到DF2,会不会更快; 或者在创建DF1之后,可以说DF2=DF减去DF1

代码:

x1='john'
df = pd.read_csv(file, sep='\n', header=None, engine='python', quoting=3)
df = df[0].str.strip(' \t"').str.split('[,|;: \t]+', 1, expand=True).rename(columns={0: 'email', 1: 'data'}) 
df1= df[df.email.str.startswith(x1)]
df2= df[~df.email.str.startswith(x1)]

共1个答案

匿名用户

不需要计算掩码df.emailclean.str.startswith(x1)两次。

mask = df.emailclean.str.startswith(x1)
df1 = df[mask].copy() # in order not have SettingWithCopyWarning 
df2 = df[~mask].copy() # https://stackoverflow.com/questions/20625582/how-to-deal-with-settingwithcopywarning-in-pandas