Roh*_*ith 4 python pandas pandas-groupby
我只是想知道这两个执行的功能有什么不同?
数据:
import pandas as pd
df = pd.DataFrame({"ID":["A","B","A","C","A","A","C","B"], "value":[1,2,4,3,6,7,3,4]})
Run Code Online (Sandbox Code Playgroud)
as_index = False:
df_group1 = df.groupby("ID").sum().reset_index()
Run Code Online (Sandbox Code Playgroud)
reset_index():
df_group2 = df.groupby("ID", as_index=False).sum()
Run Code Online (Sandbox Code Playgroud)
他们两个都给出完全相同的输出。
ID value
0 A 18
1 B 6
2 C 6
Run Code Online (Sandbox Code Playgroud)
谁能告诉我有什么区别,还有任何例子可以说明吗?
当使用index = False时,表示要向groupby表示不想将列ID设置为索引(duh!)。在这种情况下,这两种实现都会产生相同的结果。但是,有时您想对组应用更复杂的操作。在这些情况下,您可能会发现一个比另一个更适合。
示例1:您希望将两个轴上的三个变量(列)的值相加。使用as_index = True允许您在axis = 1上应用总和,而无需指定列名,然后在axis 0上求和。完成操作后,可以使用reset_index以正确的格式获取数据帧。
示例2:如果您需要根据groupby中的列为组设置值,则设置as_index = False允许您检查公共列而不是索引的条件,这通常更容易。
在某些时候,对组应用操作时可能会遇到KeyError。在这种情况下,通常是因为您试图在agg函数中使用一列,该列当前是GroupBy对象的索引。
没关系的时候,使用as_index = False可以节省一些打字和不必要的熊猫操作;)
| 归档时间: |
|
| 查看次数: |
3988 次 |
| 最近记录: |