小编The*_*Guy的帖子

Groupby Roll up 或 Roll Down 用于任何类型的聚合

TL;DR:我们如何在 Pandas 中使用任何类型的聚合实现类似于Group By Roll Up 的效果?(本学期感谢@Scott Boston

我有以下数据框:

       P   Q  R     S  T
0   PLAC  NR  F   HOL  F
1   PLAC  NR  F  NHOL  F
2   TRTB  NR  M  NHOL  M
3   PLAC  NR  M  NHOL  M
4   PLAC  NR  F  NHOL  F
5   PLAC   R  M  NHOL  M
6   TRTA   R  F   HOL  F
7   TRTA  NR  F   HOL  F
8   TRTB  NR  F  NHOL  F
9   PLAC  NR  F  NHOL  F
10 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas pandas-groupby

12
推荐指数
1
解决办法
449
查看次数

在相同环境下使用 CLI 与可执行文件从 parquet 读取 DataFrame 时的不同行为

请考虑以下程序作为最小可重现示例 -MRE

import pandas as pd
import pyarrow
from pyarrow import parquet

def foo():
    print(pyarrow.__file__)
    print('version:',pyarrow.cpp_version)
    print('-----------------------------------------------------')
    df = pd.DataFrame({'A': [1,2,3], 'B':['dummy']*3})
    print('Orignal DataFrame:\n', df)
    print('-----------------------------------------------------')
    _table = pyarrow.Table.from_pandas(df)
    parquet.write_table(_table, 'foo')
    _table = parquet.read_table('foo', columns=[])    #passing empty list to columns arg
    df = _table.to_pandas()
    print('After reading from file with columns=[]:\n', df)
    print('-----------------------------------------------------')
    print('Not passing [] to columns parameter')
    _table = parquet.read_table('foo')                #Not passing any list
    df = _table.to_pandas()
    print(df)
    print('-----------------------------------------------------')
    x = input('press any key to exit: ') …
Run Code Online (Sandbox Code Playgroud)

python pyinstaller pandas parquet pyarrow

10
推荐指数
1
解决办法
420
查看次数

对数据帧进行排序和连接

我有以下两个数据框:

>>> df1
  c1  c2  v1  v2
0  A NaN   9   2
1  B NaN   2   5
2  C NaN   3   5
3  D NaN   4   2

>>> df2
   c1 c2  v1  v2
0   A  P   4   1
1   A  T   3   1
2   A  Y   2   0
3   B  P   0   1
4   B  T   2   2
5   B  Y   0   2
6   C  P   1   2
7   C  T   1   2
8   C  Y   1   1
9   D …
Run Code Online (Sandbox Code Playgroud)

python sorting concatenation dataframe pandas

7
推荐指数
1
解决办法
4794
查看次数

非规范化/重组 CDISC 补充数据

我有一个如下所示的数据框:

         USUBJID   IDVAR IDVARVAL      QNAM                        QVAL
0  Dummy-01-0001   AESEQ      1.0  AEdummy1                  2012-02-15
1  Dummy-01-0002   AESEQ      1.0  AEdummy1                  2012-02-23
2  Dummy-01-0004   AESEQ      1.0  AEdummy1                  2012-02-06
3  Dummy-01-0004   AESEQ      2.0  AEdummy1                  2012-03-10
4  Dummy-01-0005   AESEQ      1.0  AEdummy1                  2012-03-10
5  Dummy-01-0001  AESPID        1  dummy2AE  Gastrointestinal disorders
6  Dummy-01-0002  AESPID        1  dummy2AE     Nervous system disorder
7  Dummy-01-0004  AESPID        2  dummy2AE  Gastrointestinal disorders
8  Dummy-01-0004  AESPID        1  dummy2AE     Nervous system disorder
9  Dummy-01-0005  AESPID        1  dummy2AE  Gastrointestinal disorders
Run Code Online (Sandbox Code Playgroud)

以上数据框只是一个示例,请使用以下代码将更多数据放入数据框。

df = pd.DataFrame({'USUBJID': {0: 'Dummy-01-0001', 1: …
Run Code Online (Sandbox Code Playgroud)

python pivot dataframe pandas

6
推荐指数
2
解决办法
206
查看次数

了解 torch.nn.Flatten

据我了解,Flatten 会删除除一个维度之外的所有维度。例如,我理解flatten()

> t = torch.ones(4, 3)
> t
tensor([[1., 1., 1.],
    [1., 1., 1.],
    [1., 1., 1.],
    [1., 1., 1.]])

> flatten(t)
tensor([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
Run Code Online (Sandbox Code Playgroud)

但是,我不明白Flatten,特别是我不明白文档中这段代码的含义:

>>> input = torch.randn(32, 1, 5, 5)
>>> m = nn.Sequential(
>>>     nn.Conv2d(1, 32, 5, 1, 1),
>>>     nn.Flatten()
>>> )
>>> output = m(input)
>>> output.size()
torch.Size([32, 288])
Run Code Online (Sandbox Code Playgroud)

我觉得输出应该有大小[160],因为32*5=160.

Q1. 那么为什么它输出尺寸[32,288]呢? …

python machine-learning neural-network pytorch

6
推荐指数
1
解决办法
8210
查看次数

为 pandas DataFrame 创建另一个索引,就像 SQL 中的 CREATE INDEX 一样

我可以在 pandas DataFrame 的现有列上创建另一个索引吗?就像CREATE INDEXSQL 中所做的那样。例如:我的 DataFrame 有两列id_aid_b,它们对于每一行都是唯一的,我想有时用 索引行,id_a有时用 索引行id_b(所以我认为MultiIndex对我来说不起作用)。id_a我希望这些操作能够快速进行,因此必须为和创建“索引” id_b

我目前可以在 pandas 中做到这一点吗?

python indexing pandas

5
推荐指数
1
解决办法
207
查看次数

将数据帧转换为元组列表

我有一个表熊猫 DF,它看起来像

奴隶 起始地址0 end_addr0 起始地址1 end_addr1 起始地址2 end_addr2
0 0 10000000 1FFFFFFF NaN NaN NaN NaN
1 1 2000万 2007FFFF 40000000 40005FFF NaN NaN
2 1 2000万 2007FFFF 2010万 201FFFFF NaN NaN
3 2 2020万 202FFFFF 20080000 20085FFF 40006000 400FFFFF
4 3 0 0FFFFFFF NaN NaN NaN NaN
5 4 2030万 203FFFFF NaN NaN NaN NaN
6 5 20400000 204FFFFF NaN NaN NaN NaN

对于每个从属编号,我需要将其转换为范围列表(元组)。例如,

Slave1_list = ( (20000000, 2007FFFF), (40000000, 40005FFF), (20100000, 201FFFFF))
Run Code Online (Sandbox Code Playgroud)

从站(行)和地址对(列)的数量可以变化。

谢谢

编辑 …

python dataframe pandas

5
推荐指数
1
解决办法
121
查看次数

Pandas 分组和转换忽略 NaN

我面临着对数据框中的非 NA 值进行分组和转换的问题。

所以我的数据框是这样的:

姓名 价值
A 1
A 2
A
3
7
9

我想要的最终输出:

姓名 价值 重量1 重量2
A 1 0.33 0.5
A 2 0.33 0.5
A 0.33
3 0.25 0.33
7 0.25 0.33
9 0.25 0.33
0.25

我知道这可能听起来微不足道,但我无法让 Weight 2 在 column 的不同分组类别中完美运行Name

这是我获取专栏的方式Weight 1

df['Weight 1'] = df.groupby(['Name']).transform(lambda x: 1/len(x))
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试跟踪Weight 2,但引发了 DivisionByZero 警告。输出不正确。

df['Weight 2'] = …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas pandas-groupby

5
推荐指数
1
解决办法
1241
查看次数

如何用Python计算赫尔移动平均线?

我很高兴能与大家分享我的问题,并期待向大家学习。我当前的问题是def calculating_hma无法获得正确的结果:

#python27

#inputs 
period = 9
Coin_pair = "USD-BTC"
Unit = thirtyMin''

def getClosingPrices(coin_pair, period, unit):
    historical_data = api.getHistoricalData(coin_pair, period, unit)
    closing_prices = []
    for i in historical_data:
        closing_prices.append(i['C'])
    return closing_prices


def calculate_sma(coin_pair, period, unit):

    total_closing = sum(getClosingPrices(coin_pair, period, unit))
    return (total_closing / period)


def calculate_ema(coin_pair, period, unit):

    closing_prices = getClosingPrices(coin_pair, period, unit)
    previous_EMA = calculate_sma(coin_pair, period, unit)
    constant = (2 / (period + 1))
    current_EMA = (closing_prices[-1] * (2 / (1 + period))) + (previous_EMA * …
Run Code Online (Sandbox Code Playgroud)

python api indicator moving-average

3
推荐指数
1
解决办法
8148
查看次数

Python:生成元组的语句的执行顺序是否有保证?多语句 lambda

我想知道与下面绘制的代码类似的代码在 Python 中是否合法并且可以安全使用:

# Example usage of a lambda which executes a statement and returns the changed operand
skip_first = lambda iterator: (next(iterator), iterator)[1]
Run Code Online (Sandbox Code Playgroud)

使用这样的构造并期望 lambda 的返回值是一个从原始迭代器的第二个元素开始的迭代器(如果没有抛出异常)是否安全?

或者 fi Cythonnext出于某种原因优化调用可能是合法的(即,因为它丢弃了结果值,因为未定义元组中的执行顺序,并且它可以确定我们以任何一种方式丢弃第一个值?)

  1. 用法示例:
f = iter([0, 1, 2, 3, 4])
print(list(skip_first(f)))
Run Code Online (Sandbox Code Playgroud)
  1. Godbolt 的例子

python lambda tuples python-3.x

3
推荐指数
1
解决办法
55
查看次数