所有,我是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”到“DataByCity”中添加更多列。例如,我需要按城市将人口数量从“数据”加到一个列表中,并将该列表附加到“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文档。我只是不能把线索放在一起。 谢谢
答案 0 :(得分:0)
您可以在此处找到您想要的内容: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,没有任何问题。