gpt4 book ai didi

python - 如何从pandas面板数据中递归选择一组列?

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:29 24 4
gpt4 key购买 nike

我有横截面数据,其中包括芝加哥地区的年度犯罪频率和房价。我想从数据集中递归地选择一组列,因为我想将它们用作训练回归模型的特征。有什么快速的方法可以做到这一点吗?有什么想法吗?

示例数据片段:

这是我的数据的屏幕截图:

enter image description here enter image description here

这里是example data snippet在云端浏览数据。

我的尝试:

这是一个示例,我可以选择一组列作为训练 ML 模型的特征。

import urllib
import pandas as pd
# download data from cloud
u = "https://filebin.net/ml0sjn455gr8pvh3/crime_realEstate?t=7dkm15wq"
crime_realEstate = urllib.request.urlretrieve (u, "Ktest.csv")

# or just manually download data first and read
crime_realEstate = pd.read_csv('crime_realEstate.csv')
cols_2012 = crime_realEstate.filter(regex='_2012').columns
crime_realEstate['Area_Name']=crime_realEstate['Area_Name'].apply(lambda x: re.sub(' ', '_', str(x)))
regDF_2012 = crime_realEstate[cols_2012]
regDF_2012 = regDF_2012.assign(community_code=crime_finalDF['community_area'])
regDF_2012.dropna(inplace=True)
X_feats = regDF_2012.drop(['Avg_Price_2012'], axis=1)
y_label = regDF_2012['Avg_Price_2012'].values

基本上,我想在循环中对 regDF_2013regDF_2014 等执行相同的操作,以便更好地操作并轻松访问数据。

有什么想法可以实现这一点吗?有什么想法吗?谢谢

最佳答案

融化你的数据框。这样,每个变量就有单独的列,并按 Area_name 进行索引。 :

import pandas as pd
crime_realEstate = pd.read_csv("Ktest.csv", delimiter="\t", index_col=0)
crime_melted = pd.melt(crime_realEstate, id_vars=['Area_Name', 'community_area'])
crime_melted["crime"] = crime_melted["variable"].apply(lambda x: x[:-5])
crime_melted["year"] = crime_melted["variable"].apply(lambda x: x[-4:])
crime_melted.drop(columns=["variable"], inplace=True)
crime_melted.set_index("Area_Name", inplace=True)

生成的数据框是(示例行):

                community_area        value                crime  year
Area_Name
Grand Boulevard 38.0 135.000000 assault 2012
Grand Boulevard 38.0 108.000000 assault 2013
Grand Boulevard 38.0 116.000000 assault 2014
Grand Boulevard 38.0 78.000000 assault 2015
Grand Boulevard 38.0 105.000000 assault 2016

可以使用loc访问索引:

crime_melted.loc["Grand Boulevard"]

机器学习需要每个变量的单独列:-)

关于python - 如何从pandas面板数据中递归选择一组列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55855387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com