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

标签 python pandas

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

示例数据片段:

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

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/

相关文章:

python - 如何设定K的范围并找到其最佳值?

python - Scikit Learn 中 DictVectorizer 中的属性错误

python - 如何使用Python提取和合并坐标?

python - 如何在条形图上显示自定义值

Python Pandas 使用 pd.qcut 创建新的 Bin/Bucket 变量

Javascript不读取django模板中字典的键和值

Python 和 .exe 文件,另一种方式

python - 基于 Pandas 范围的 bin 值

python - 如何自定义条形注释以不显示选定值

python - 计数如果 : job is in a certain time interval