我有一个DataFrame,其索引称为city_id格式中的城市[city],[state](例如,new york,ny列中包含整数计数.问题是我有同一个城市的多行,我想city_id通过添加列值来折叠共享a的行我看了看groupby()但是如何将它应用于这个问题并不是很明显.
编辑:
一个例子:我想改变这个:
city_id val1 val2 val3
houston,tx 1 2 0
houston,tx 0 0 1
houston,tx 2 1 1
Run Code Online (Sandbox Code Playgroud)
进入这个:
city_id val1 val2 val3
houston,tx 3 3 2
Run Code Online (Sandbox Code Playgroud)
如果有~10-20k行.
DSM*_*DSM 47
从...开始
>>> df
val1 val2 val3
city_id
houston,tx 1 2 0
houston,tx 0 0 1
houston,tx 2 1 1
somewhere,ew 4 3 7
Run Code Online (Sandbox Code Playgroud)
我可能会这样做
>>> df.groupby(df.index).sum()
val1 val2 val3
city_id
houston,tx 3 3 2
somewhere,ew 4 3 7
Run Code Online (Sandbox Code Playgroud)
要么
>>> df.reset_index().groupby("city_id").sum()
val1 val2 val3
city_id
houston,tx 3 3 2
somewhere,ew 4 3 7
Run Code Online (Sandbox Code Playgroud)
第一种方法通过的指标值(在这种情况下,city_id值)groupby,并告诉它使用那些作为组密钥,并且所述第二重置索引,然后选择该city_id列中.有关更多示例,请参阅文档的此部分.请注意,对象中还有许多其他方法DataFrameGroupBy:
>>> df.groupby(df.index)
<pandas.core.groupby.DataFrameGroupBy object at 0x1045a1790>
>>> df.groupby(df.index).max()
val1 val2 val3
city_id
houston,tx 2 2 1
somewhere,ew 4 3 7
>>> df.groupby(df.index).mean()
val1 val2 val3
city_id
houston,tx 1 1 0.666667
somewhere,ew 4 3 7.000000
Run Code Online (Sandbox Code Playgroud)
同一行的东西。抱歉,不是精确的复制品。
mydata = [{'subid' : 'B14-111', 'age': 75, 'fdg':1.78},
{'subid' : 'B14-112', 'age': 22, 'fdg':1.56},{'subid' : 'B14-112', 'age': 40, 'fdg':2.00},]
df = pandas.DataFrame(mydata)
gg = df.groupby("subid",sort=True).sum()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46872 次 |
| 最近记录: |