将DataFrame(长格式数据)重塑为“summary”DataFram

2024-04-26 06:58:36 发布

您现在位置:Python中文网/ 问答频道 /正文

所有,我对python还不熟悉。我正在尝试自动重塑我通常在excel中执行的操作如下

#Import long form data from CSV into pandas data frame
In 1: Data = [My Long Form DataFrame imported from a CSV file]

City        Population
Chicago     1,245
Los Angeles 2,457
New York    998
Chicago     1,854
New York    1,654
Los Angeles 2,478
Los Angeles 760
more...

#Reshape "Data" DataFrame to a summary DataFrame "DataByCity"
In 2: DataByCity = pandas.DataFrame(Data.reset_index().groupby(['City'])['City'].count(), columns = ['Count_Cities'])

Out 2: 
City        Count_Cities
Chicago      5
New York    10
Los Angeles  8

接下来(这里需要帮助),我需要添加更多从“Data”到“dataycity”的列。例如,我需要按城市将人口从“Data”中求和到一个列表中,然后将该列表附加到“DataByCity”中。在

^{pr2}$

最后,我需要在“DataByCity”中添加一个计算过的第四列(['Sum_Pop']/['Count_Cities'])

In 4: ???
Out 4: 
City     Count_Cities  Sum_Pop  Avg_Pop
Chicago      5         10,128   2,025.6
New York    10         18,457   1,845.7
Los Angeles  8         16,950   2,118.75

谢谢你的帮助!我搜索了这些论坛好几天了,还有python文档。我就是不能把线索放在一起。 谢谢你


Tags: infromcitydataframenewdatacountpop
1条回答
网友
1楼 · 发布于 2024-04-26 06:58:36

您将在此处找到您想要描述的内容:Applying multiple functions at once

从数据作为数据帧开始,城市和人口列都是列。在

import pandas as pd
import numpy as np

grouped = Data.groupby('City')

df = grouped['Population'].agg({'Count_Cities' : np.count,
                                'Sum_Pop' : np.sum,
                                'Avg_Pop' : np.mean})

或者,您可以使用透视表功能。在

你最后一个问题的答案你会很容易地找到here。在

相关问题 更多 >