微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种方法可以在Pandas中组合多个列,这些列可以将某些列中的所有数据合并为一列12列到1列

如何解决有没有一种方法可以在Pandas中组合多个列,这些列可以将某些列中的所有数据合并为一列12列到1列

我希望这个问题很清楚,但是我正在调查Zillow房屋销售数据,并且遇到了一个问题,即能够将某些年份的所有月份合并到新声明的“ Year”变量中。本质上,这应该将所有具有Jan-YY,Feb-YY,Mar-YY ... etc的数据存储到YY。

我曾经尝试过内置 Stack() Pivot()之类的函数的Pandas,但这些似乎没有用。

如果没有可行的方法我有什么选择?预先感谢!

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

我的代码

<button class="buy-button">Buy Button</button>

Screen shot of how data is formatted via excel -- Starts on Column I

对Zillow数据的引用: https://www.zillow.com/research/data/

解决方法

我认为您需要一个枢轴的对立面-melt。您具有“宽”格式的数据,如果将数据转换为“高”格式,则执行此摘要会更容易。一旦获得高格式数据,就可以使用groupby对同一年内的值求和。

我下载了房屋库存和销售数据集,并编写了一个简短的程序来汇总同一年的所有值。

代码:

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","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]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。