Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在dataframe中基于列标签对数据进行分组_Python_Pandas_Dataframe_Indexing_Pandas Groupby - Fatal编程技术网

Python 在dataframe中基于列标签对数据进行分组

Python 在dataframe中基于列标签对数据进行分组,python,pandas,dataframe,indexing,pandas-groupby,Python,Pandas,Dataframe,Indexing,Pandas Groupby,我一直在读熊猫数据框架中的层次索引和多索引,但似乎这些都是针对有序标签的。例如,我的数据如下所示: 我希望能够根据列标签将数据分组在一起,即通过平均值将第3行中所有带“d”的列聚合在一起 将excel数据(或csv,如果绝对需要)放入数据框以便我可以执行这些操作的最佳方法是什么?我将如何执行这些操作 如有任何建议或推荐,将不胜感激 编辑 我尝试使用以下命令从csv加载数据: data = pd.read_csv('Dataset.csv', index_col=0, header=[0,1,2

我一直在读熊猫数据框架中的层次索引和多索引,但似乎这些都是针对有序标签的。例如,我的数据如下所示:

我希望能够根据列标签将数据分组在一起,即通过平均值将第3行中所有带“d”的列聚合在一起

将excel数据(或csv,如果绝对需要)放入数据框以便我可以执行这些操作的最佳方法是什么?我将如何执行这些操作

如有任何建议或推荐,将不胜感激

编辑

我尝试使用以下命令从csv加载数据:

data = pd.read_csv('Dataset.csv', index_col=0, header=[0,1,2,3], parse_dates=True)
当加载时,这给了我:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 18 entries, 2013-05-27 10:31:00 to 2013-07-24 11:31:00
Data columns (total 40 columns):
(1, mix, d, n)     18  non-null values
(2, aq, s, n)      18  non-null values
(3, gr, s, n)      18  non-null values
(4, mix, d, n)     18  non-null values
(5, aq, d, n)      17  non-null values

日期时间索引:18条条目,2013-05-27 10:31:00至2013-07-24 11:31:00
数据列(共40列):
(1,mix,d,n)18个非空值
(2,aq,s,n)18个非空值
(3,gr,s,n)18个非空值
(4,混合,d,n)18个非空值
(5,aq,d,n)17个非空值
我只是不太确定从那里走到哪里。

您可以使用列方式(
axis=1
)并采取以下措施:


你从哪里读取数据?Excel文件还是CSV文件?如果是这样的话,请查看Python中的CSV模块。我更希望从excel中读取,但我确实研究了如何转换为CSV,然后将标题设置为我希望能够分组的行,但我不知道从哪里开始。我将添加一个编辑并向您展示我的意思。您是否尝试过使用
数据['3']
如10分钟教程所示?我只是观看了视频,没有,似乎不起作用。它只给了我一个关键错误。您能发布您尝试过的内容和您得到的错误吗?(也可能数据本身是原始文本而不是图像)这正是我想要做的!我以前做过一些改变,但没有按正确的方式进行。谢谢
In [11]: df = pd.DataFrame(np.random.randn(4, 3), columns=[[1, 2, 3], ['d', 's', 'd']])

In [12]: df.columns.names = ['PLOT', 'DEPTH']

In [13]: df
Out[13]:
PLOT          1         2         3
DEPTH         d         s         d
0     -0.557490 -1.231495 -0.333703
1      0.513394  1.046577  0.596306
2     -0.404606 -1.615080 -0.694562
3     -0.078497 -0.683405  0.056857

In [14]: df.groupby(level='DEPTH', axis=1).mean()
Out[14]:
DEPTH         d         s
0     -0.445596 -1.231495
1      0.554850  1.046577
2     -0.549584 -1.615080
3     -0.010820 -0.683405