我正在阅读Wes Mckinney的数据分析Python,但是我对这个数据操作感到惊讶。你可以看到所有的程序here,但我会尽量在这里总结一下。假设你有这样的事情:怪异的熊猫数据操作
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
是类,所以我们可以看到,有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
...
所以在这一点上,我还以为,根据documentation我列求和(在sum(1)
)和然后根据显示参数的结果进行排序(通常在argsort中)。首先,我不确定这个系列中的“列”是什么意思,因为sum(1)
实际上是总结Not Windows
和Windows
用户将该值保持在与其时区相同的行中。此外,我看不到argsort值与agg_counts
之间的相关性。例如,Pacific/Auckland
的“argsort值”(In[134]
)为0,它只有11 Windows
和Not Windows
用户的总和。 Asia/Harbin
的argsort值为1,出现的总数为3 Windows
,而非Windows用户。
有人可以向我解释那里发生了什么吗?显然我误解了一些东西。
这是一个在这本书一个非常混乱的例子) – Winand