有没有一种方法可以组合 Pandas 中的多个列,可以将某些列中的所有数据连接到一列中

我希望这个问题很清楚,但我正在研究 Zillow 房屋销售数据,并且遇到了一个问题,即能够将某些年份的所有月份合并到新声明的“年份”变量。这基本上应该将包含 Jan-YY、Feb-YY、Mar-YY...等的所有数据存储为 YY。


我尝试过 Pandas 内置的函数,例如Stack()和Pivot(),但这些似乎不起作用。


如果没有可行的方法来做到这一点,我有什么选择?提前致谢!


示例:采用 Column1 = '1/31/1996'和 Column2 = '2/28/1996' …等。和 Column12 = '12/31/1996'并组合成一个名为Y1996的新列。这比每月细分更容易分析。


我的代码:


  import pandas as pd

  import numpy as np

  import statsmodels.api as sm

  import matplotlib.pyplot as plt 

  %matplotlib inline


  zil = pd.read_csv('zillow.csv')

  df_zil = pd.DataFrame(df_zil)

  df_zil.head(4)


  #My attempt at merging into one

  y1996 = (df_zil['1/31/1996'] + df_zil['3/31/1996'] + df_zil['4/30/1996'] + df_zil['5/31/1996'] + 

  df_zil['6/30/1996'] + df_zil['7/31/1996'] + df_zil['8/31/1996'] + df_zil['9/30/1996'] + 

  df_zil['10/31/1996'] + df_zil['11/30/1996'] + df_zil['12/31/1996'])

如何通过 Excel 格式化数据的屏幕截图 - 从第一列开始

参考 Zillow 数据: https: //www.zillow.com/research/data/


湖上湖
浏览 94回答 1
1回答

冉冉说

我认为你需要与支点相反的东西——融化。您的数据采用“宽”格式,如果将数据转换为“高”格式,则可以更轻松地进行此汇总。获得高格式的数据后,您可以使用 groupby 来汇总同一年内的值。我下载了房屋库存和销售数据集,并编写了一个简短的程序来汇总同一年的所有值。代码:import pandas as pddf = pd.read_csv("Metro_invt_fs_uc_sfrcondo_smoothed_month.csv")# Take all of the columns after the index and convert them into additional rowsdf = df.melt(id_vars=["RegionID", "SizeRank", "RegionName", "RegionType", "StateName"], var_name="Date")# Drop date, but keep yeardf["Year"] = pd.to_datetime(df["Date"]).dt.yeardf = df.drop("Date", axis="columns")# Aggregate each yeardf = df.groupby(["RegionID", "SizeRank", "RegionName", "RegionType", "StateName", "Year"], as_index=False).sum()print(df)输出:     RegionID  SizeRank                         RegionName RegionType StateName  Year    value0      394304        74                          Akron, OH        Msa        OH  2017   3576.01      394304        74                          Akron, OH        Msa        OH  2018  42625.02      394304        74                          Akron, OH        Msa        OH  2019  39078.03      394304        74                          Akron, OH        Msa        OH  2020  21532.04      394308        60                         Albany, NY        Msa        NY  2017   2969.0..        ...       ...                                ...        ...       ...   ...      ...475    753906        75  North Port-Sarasota-Bradenton, FL        Msa        FL  2020  73953.0476    753924        54                 Urban Honolulu, HI        Msa        HI  2017   3735.0477    753924        54                 Urban Honolulu, HI        Msa        HI  2018  50079.0478    753924        54                 Urban Honolulu, HI        Msa        HI  2019  57413.0479    753924        54                 Urban Honolulu, HI        Msa        HI  2020  35522.0[480 rows x 7 columns]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python