我有一个数据框,我想将一个函数应用于每2列(或3列,它是变量)。
例如,下面的示例DataFrame
,我想将均值函数应用于0-1、2-3、4-5,.... 28-29列
d = pd.DataFrame((np.random.randn(360)).reshape(12,30))
0 1 ... 17 18 19 29
0 0.590293 -2.794911 ... 0.772830 -1.389820 -1.696832 ... 0.615549
1 0.115954 2.179996 ... -0.764384 -0.610713 -0.289050 ... -1.130803
2 0.209405 0.381398 ... -0.317797 0.261590 2.502581 ... 1.750126
3 2.828746 0.831299 ... -0.679128 -1.255643 0.245522 ... -0.612011
4 0.625284 1.141448 ... 0.391047 -1.262303 -0.094523 ... -3.643543
5 0.493923 1.601924 ... -0.935102 -2.416869 0.112278 ... -0.001863
6 -1.213347 0.396682 ... 0.671210 0.122041 -1.469256 ... 1.825214
7 0.026695 -0.482887 ... 0.020123 1.151533 -0.440114 ... -1.407276
8 0.235436 0.763454 ... -0.446333 -0.322420 1.067925 ... -0.622363
9 0.668812 0.537556 ... 0.471777 -0.119756 0.098581 ... 0.007390
10 -1.112536 -2.378293 ... 1.047705 -0.812025 0.771080 ... -0.403167
11 -0.709457 -1.598942 ... -0.568418 -2.095332 -1.970319 ... 1.687536
groupby
也可以使用axis=1
,并且可以接受一系列的组标签。如果您的列在您的示例中那样是方便的范围,那么这很简单:
>>> df = pd.DataFrame((np.random.randn(6*6)).reshape(6,6))
>>> df
0 1 2 3 4 5
0 1.705550 -0.757193 -0.636333 2.097570 -1.064751 0.450812
1 0.575623 -0.385987 0.105516 0.820795 -0.464069 0.728609
2 0.776840 -0.173348 0.878534 0.995937 0.094515 0.098853
3 0.326854 1.297625 2.232534 1.004719 -0.440271 1.548430
4 0.483211 -1.182175 -0.012520 -1.766317 -0.895284 -0.695300
5 0.523011 -1.653557 1.022042 1.201774 -1.118465 1.400537
>>> df.groupby(df.columns//2, axis=1).mean()
0 1 2
0 0.474179 0.730618 -0.306970
1 0.094818 0.463155 0.132270
2 0.301746 0.937235 0.096684
3 0.812239 1.618627 0.554080
4 -0.349482 -0.889419 -0.795292
5 -0.565273 1.111908 0.141036
(这是因为df.columns//2
给出了Int64Index([0, 0, 1, 1, 2, 2], dtype='int64')
。)
即使我们不是很幸运,我们仍然可以自己建立适当的小组:
>>> df.groupby(np.arange(df.columns.size)//2, axis=1).mean()
0 1 2
0 0.474179 0.730618 -0.306970
1 0.094818 0.463155 0.132270
2 0.301746 0.937235 0.096684
3 0.812239 1.618627 0.554080
4 -0.349482 -0.889419 -0.795292
5 -0.565273 1.111908 0.141036
我正在处理一个包含3列的csv文件,如下所示: 列包含不同的值(比如总共5个),其中包括空格、冒号和其他特殊字符。 我试图实现的是根据每个指标绘制时间图(在同一个图上或在不同的图上)。我可以使用,但首先需要根据“标签”对对进行分组。 我查看了以获得标签,并将以“标签”进行分组,但我正在努力以一种正确的“pythonic”方式完成这项工作。 有什么建议吗?
问题内容: 带有以下数据 我想产生以下输出: 如果我按价格分组并显示最大日期和最小日期,那么我将得到以下不是我想要的内容(请参见重叠的日期)。 因此,基本上我想做的是根据组列产品和价格对数据进行逐步更改。 什么是最干净的方法来做到这一点? 问题答案: 有一种(或多或少)解决此类问题的已知技术,涉及两个调用,如下所示: 输出:
问题内容: 给定这样的假设查询: 并有一个类似于下面的表格: 所需结果: 有什么方法可以使用GROUP BY和LIKE语句(LIKE“ silver”,LIKE“ gold”,LIKE“ platinum”等)对这些条目进行分组? 问题答案: 您可以使用: 某些数据库允许您在中使用列别名。
我有一个熊猫数据框,格式如下: df: 现在我想将其分为两列,如下所示: 输出: 我想得到每一行的计数,如下所示。预期产出: 如何获得我的预期输出?我想找出每个“col2”值的最大计数?
我有列。 如何根据值将其拆分为2? 第一个将包含
我想按多个列对熊猫数据框进行分组。每个Row都有一个整数、一个Name和一个额外的数值。我希望最终的Dataframe包含Name具有最高整数的每一行。 通过分组数据帧,只有第0行应该消失。第3行和第4行仍应包括在数据框中。