小编Ada*_*dam的帖子

使用 Python 中特定列的先前值填充 NaN

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

df =

                      open       high        low      close
Timestamp                                                      
2014-01-07 13:18:00  874.67040  892.06753  874.67040  892.06753
2014-01-07 13:19:00        NaN        NaN        NaN        NaN
2014-01-07 13:20:00        NaN        NaN        NaN        NaN
2014-01-07 13:21:00  883.23085  883.23085  874.48165  874.48165
2014-01-07 13:22:00        NaN        NaN        NaN        NaN
Run Code Online (Sandbox Code Playgroud)

对于每个 NaN,它们应该取前一周期的收盘值。

编辑:我尝试过使用 df.fillna(method='ffill') 但它使每个 NaN 直接在其上方取值。我希望每个 NaN 只取其之前的 Close 值。

使用填充产量:

                      open       high        low      close
Timestamp                                                      
2014-01-07 13:18:00  874.67040  892.06753  874.67040  892.06753
2014-01-07 13:19:00  874.67040  892.06753  874.67040  892.06753
Run Code Online (Sandbox Code Playgroud)

但我正在寻找:

                      open       high        low      close
Timestamp                                                      
2014-01-07 13:18:00  874.67040  892.06753  874.67040 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

向 Python 模块添加版本属性

我正在构建一个 Python 模块,其结构如下:

mypackage/
    mypackage/
        __init__.py
        etc.py
    setup.py
    setup.cfg
    pyproject.toml
Run Code Online (Sandbox Code Playgroud)

为了构建它,我正在运行$ python -m build。我注意到版本号不可用(例如mypackage.__version__安装后未定义),目前我只是手动设置它,如下所示:

安装程序.py

setup(..., version='0.0.1' )
Run Code Online (Sandbox Code Playgroud)

pyproject.toml

[project]
version = '0.0.1'
Run Code Online (Sandbox Code Playgroud)

我是 Python 包开发的新手,有一些关于此的帖子,但似乎没有标准的方法。

该包非常小,理想情况下我只想更新一个东西,比如__version__ = '0.0.1'inside __init__.py,然后在setup.py和中自动解析它pyproject.toml

python

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

Pandas 根据列的值有效地分块读取大面板 CSV

我有一个很大的 CSV 文件(磁盘上约 50 GB),但无法立即将其完全读入内存。数据集本身是面板数据,看起来像

ID Time     Col 1 ... Col N
1  2000/1/1 ...
1  2000/1/2
...
2  2000/1/1 ...
...
Run Code Online (Sandbox Code Playgroud)

我加载这些数据的想法是以块的形式读取它,进行一些预处理以减少大小,然后单独保存每个块。我知道使用pd.read_csv(..., chunksize=1000)它可以让我循环遍历大小为 1000 的块,但为了使预处理准确,我更愿意循环遍历与 ID 列相对应的块。(需要对特定的所有行ID进行准确的预处理)

换句话说,假设我有一个较小的文件,其中包含所有值ID(例如 1-1000)。然后,我想做一些类似的事情

list_of_id_chunks = [ [1,2,3], [4,5,6], [7,8,9], ... ] # Split the total IDs into chunks of 3 IDs each

for chunk_of_ids in list_of_id_chunks:
    # 1. Read the large csv file with only the rows where `ID` is in chunk_of_ids
    # (For the first iteration, …
Run Code Online (Sandbox Code Playgroud)

python bigdata pandas

2
推荐指数
1
解决办法
1713
查看次数

标签 统计

python ×3

pandas ×2

bigdata ×1

dataframe ×1