我正在阅读 Wes Mckinney 的 Python for Data Analysis,但我对这种数据操作感到惊讶。你可以在这里看到所有的过程,但我会在这里总结一下。假设你有这样的事情:
In [133]: agg_counts = by_tz_os.size().unstack().fillna(0)
Out[133]:
a Not Windows Windows
tz 245 276
Africa/Cairo 0 3
Africa/Casablanca 0 1
Africa/Ceuta 0 2
Africa/Johannesburg 0 1
Africa/Lusaka 0 1
America/Anchorage 4 1
...
tz
表示时区,Not Windows
和Windows
是从原始数据中的User Agent中提取的类别,所以我们可以从收集的数据中看到非洲/开罗有3个Windows用户和0个非Windows用户。
然后为了获得“最高的总时区”,我们有:
In [134]: indexer = agg_counts.sum(1).argsort()
Out[134]:
tz
24
Africa/Cairo 20
Africa/Casablanca 21
Africa/Ceuta 92
Africa/Johannesburg 87
Africa/Lusaka 53
America/Anchorage 54
America/Argentina/Buenos_Aires 57
America/Argentina/Cordoba 26
America/Argentina/Mendoza 55
America/Bogota 62
...
所以在那一点上,我会认为根据文档我正在对列(in sum(1)
)求和,然后根据显示参数的结果进行排序(就像在 argsort 中一样)。首先,我不确定在本系列的上下文中“列”是什么意思,因为sum(1)
实际上是求和Not Windows
,并且Windows
用户将该值与其时区保持在同一行中。此外,我看不到 argsort 值和agg_counts
. 例如,Pacific/Auckland
具有In[134]
0 的“argsort 值”(in )并且它只有 11Windows
和Not Windows
users 的总和。Asia/Harbin
argsort 值为 1,总和为 3Windows
且不是 Windows 用户。
有人可以向我解释那里发生了什么吗?显然我误解了一些东西。