Python 如何按规定将数据读入不同的组
我使用下面的代码,将数据从中读入两组Python 如何按规定将数据读入不同的组,python,pandas,dataframe,Python,Pandas,Dataframe,我使用下面的代码,将数据从中读入两组 import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy import stats dataFileName='RFInput.xlsx' sheetName='Rawdata' sheetNamePara='paraList' dataRaw=pd.read_excel(dataFileName, sheetname = sheetName) data
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
dataFileName='RFInput.xlsx'
sheetName='Rawdata'
sheetNamePara='paraList'
dataRaw=pd.read_excel(dataFileName, sheetname = sheetName)
datapara=pd.read_excel(dataFileName, sheetname = sheetNamePara)
noData=len(dataRaw)
import matplotlib.pylab as plt
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import cross_val_score
from sklearn.preprocessing import StandardScaler
labels = datapara
x = dataRaw[labels]
y = dataRaw['classVariable']
原始数据:
A B C D E F
0 1.2 1.6 3.2 3.2 1.6
1 1.2 1.6 3.2 3.2 1.6
2 2.6 1.9 6.5 6.5 1.9
0 1.2 1.6 3.2 3.2 1.6
1 2.6 1.9 6.5 6.5 1.9
4 1.2 1.6 3.2 3.2 1.6
paraList:
A C E F
Y N Y Y
A、 B、C、D、E、F是我在rawData中的原始变量名,但我只想提取paraList中指定的A、C、E、F变量数据。这些所需变量列在副列表中,并分为两组Y和N,
我想将Y变量数据读入x_Y,将N变量数据读入x_N。如果我理解正确,您需要原始表的子集。您不需要读取文件两次,只需像
dataRaw[[“A”、“C”、“E”、“F”]]
那样索引数据帧就足够了。您可以将此视图指向另一个变量,也可以使用添加的.copy()
复制它
但由于这是一个相当基本的问题,我真的建议你阅读这本书
编辑在本例中,我建议将列和类别列表存储到字典中,并使用简单的列表理解来访问它们,类似这样
dic = {"A":"Y","C":"N","E":"Y","F":"Y"}
y_subset = df[[key for key,value in dic.items() if value == "Y"]]
n_subset = df[[key for key,value in dic.items() if value == "N"]]
因为,我的rawData有更多的变量,但是我每次都在“datapara”中定义我需要的变量数据,datapara中的变量列表每次都会根据需要更改,datapara中的变量列表是两类,例如N,Y,我想确定哪些变量是Y类型,哪些变量是N类型,识别N&Y类别变量后,分别从dataRaw读取N类型变量数据和Y类型变量数据。