如何在pandas中获取数据帧的列切片

我从CSV文件中加载了一些机器学习数据。前两列是观察,其余列是特征。


目前,我做以下事项:


data = pandas.read_csv('mydata.csv')

这给出了类似的东西:


data = pandas.DataFrame(np.random.rand(10,5), columns = list('abcde'))

我想两个dataframes切片此数据框:一个包含列a,并b和包含列一个c,d和e。


写不出类似的东西是不可能的


observations = data[:'c']

features = data['c':]

我不确定最好的方法是什么。我需要一个pd.Panel吗?


顺便说一下,我发现数据帧索引非常不一致:data['a']是允许的,但data[0]不是。另一方面,data['a':]不允许,但是data[0:]。这是否有实际原因?如果列被Int索引,这实在令人困惑data[0] != data[0:1]


蓝山帝景
浏览 1202回答 3
3回答

慕哥6287543

让我们使用seaborn包中的泰坦尼克数据集作为例子# Load dataset (pip install seaborn)>> import seaborn.apionly as sns>> titanic = sns.load_dataset('titanic')使用列名称>> titanic.loc[:,['sex','age','fare']]使用列索引>> titanic.iloc[:,[2,3,6]]使用ix(比熊猫更高<.20版本)>> titanic.ix[:,[‘sex’,’age’,’fare’]]要么>> titanic.ix[:,[2,3,6]]使用reindex方法>> titanic.reindex(columns=['sex','age','fare'])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python