我发现结果有点随机.有时它是副本有时它是一个视图.例如:
df = pd.DataFrame([{'name':'Marry', 'age':21},{'name':'John','age':24}],index=['student1','student2'])
df
age name
student1 21 Marry
student2 24 John
Run Code Online (Sandbox Code Playgroud)
现在,让我尝试稍微修改一下.
df2= df.loc['student1']
df2 [0] = 23
df
age name
student1 21 Marry
student2 24 John
Run Code Online (Sandbox Code Playgroud)
如你所见,没有任何改变.df2是一个副本.但是,如果我将另一名学生添加到数据框中...
df.loc['student3'] = ['old','Tom']
df
age name
student1 21 Marry
student2 24 John
student3 old Tom
Run Code Online (Sandbox Code Playgroud)
尝试再次改变年龄..
df3=df.loc['student1']
df3[0]=33
df
age name
student1 33 Marry
student2 24 John
student3 old Tom
Run Code Online (Sandbox Code Playgroud)
现在df3突然成了一个观点.到底是怎么回事?我想价值'旧'是关键?
我有一个df超过15000行的数据框对象,如:
anime_id name genre rating
1234 Kimi no nawa Romance, Comedy 9.31
5678 Stiens;Gate Sci-fi 8.92
Run Code Online (Sandbox Code Playgroud)
我试图找到具有特定anime_id的行.
a_id = "5678"
temp = (df.query("anime_id == "+a_id).genre)
Run Code Online (Sandbox Code Playgroud)
我只是想知道这个搜索是在恒定时间(如字典)还是线性时间(如列表)中完成的.