簡體   English   中英

有沒有辦法在 Pandas 中組合多列,可以將來自某些列的所有數據連接到一列(12 列到 1)

[英]Is there a way to combine multiple columns in Pandas that can join all data from certain columns into one column (12 columns to 1)

我希望這個問題很清楚,但我正在查看 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/

我認為你需要一個與樞軸相反的 - 融化 您的數據采用“寬”格式,如果將數據轉換為“高”格式,則更容易進行此匯總。 獲得高格式數據后,您可以使用 groupby 對同一年內的值求和。

我下載了 House Inventory 和 Sales 數據集,並編寫了一個簡短的程序來匯總同一年的所有值。

代碼:

import pandas as pd

df = pd.read_csv("Metro_invt_fs_uc_sfrcondo_smoothed_month.csv")
# Take all of the columns after the index and convert them into additional rows
df = df.melt(id_vars=["RegionID", "SizeRank", "RegionName", "RegionType", "StateName"], var_name="Date")
# Drop date, but keep year
df["Year"] = pd.to_datetime(df["Date"]).dt.year
df = df.drop("Date", axis="columns")
# Aggregate each year
df = df.groupby(["RegionID", "SizeRank", "RegionName", "RegionType", "StateName", "Year"], as_index=False).sum()
print(df)

輸出:

     RegionID  SizeRank                         RegionName RegionType StateName  Year    value
0      394304        74                          Akron, OH        Msa        OH  2017   3576.0
1      394304        74                          Akron, OH        Msa        OH  2018  42625.0
2      394304        74                          Akron, OH        Msa        OH  2019  39078.0
3      394304        74                          Akron, OH        Msa        OH  2020  21532.0
4      394308        60                         Albany, NY        Msa        NY  2017   2969.0
..        ...       ...                                ...        ...       ...   ...      ...
475    753906        75  North Port-Sarasota-Bradenton, FL        Msa        FL  2020  73953.0
476    753924        54                 Urban Honolulu, HI        Msa        HI  2017   3735.0
477    753924        54                 Urban Honolulu, HI        Msa        HI  2018  50079.0
478    753924        54                 Urban Honolulu, HI        Msa        HI  2019  57413.0
479    753924        54                 Urban Honolulu, HI        Msa        HI  2020  35522.0

[480 rows x 7 columns]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM