大家好,我是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
下一步(这里需要帮助),我需要添加更多的列从"数据"到"DataByCity"。例如,我需要将"Data"中按城市的人口总和添加到一个列表中,并将该列表添加到"DataByCity"中。
In 3: ??????
Out 3:
City Count_Cities Sum_Pop
Chicago 5 10,128
New York 10 18,457
Los Angeles 8 16,950
最后,我需要为"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文档。我就是想不起来这些线索。谢谢你
您会发现这里描述了您想要的内容:一次应用多个函数
以Data作为数据框架,City和Population作为列。
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})
或者您可以使用数据透视表功能。
你可以毫不费力地在这里找到最后一个问题的答案。