小编jor*_*mit的帖子

pandas hub_table 的边距仅垂直聚合

考虑一个数据框:

df = pd.DataFrame(
    {'last_year': [1, 2, 3], 'next_year': [4, 5, 6]}, 
    index=['foo', 'bar', 'star']
)
Run Code Online (Sandbox Code Playgroud)
      last_year  next_year
foo           1          4
bar           2          5
star          3          6
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种简单的方法来显示该表周围的总计(列和行)。

我的想法是把它扔掉.pivot_table()

      last_year  next_year
foo           1          4
bar           2          5
star          3          6
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于第一个轴(垂直):

      last_year  next_year
bar           2          5
foo           1          4
star          3          6
All           6         15
Run Code Online (Sandbox Code Playgroud)

我错过了什么?为什么也没有计算行总计,就像本文档的示例中一样?另外,为什么它会打乱我的索引顺序?

df['All'] = df.sum(axis=1)我对某种解决方案不感兴趣;我想要一种不影响我的原始数据框的动态方法。数据透视表似乎是最合乎逻辑的方法(据我所知),但也许还有更好的方法!

python pivot-table pandas

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

如何从 Pandas 的 df 中随机删除 10% 的属性值

我有一个示例数据集。它有 2000 行和 15 列。最后一列将需要作为分类中的决策类。

我需要随机删除 10% 的属性值。所以列中 10% 的值0-13应该是NA.

我写了一个for循环。它随机化colNumber( 0-13) 和rowNumber( 0-2000) 并将值替换为NA。但我认为(并且我看到了这一点)这不是一个更快的解决方案。我试图在pandas.

也许有人有更好的主意?更多pandas解决方案?或者也许是完全不同的东西?

python pandas

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

如何运行多个功能并创建列表?

我是Python的新手,我有一个加密交换列表,我想与ccxt库连接以获取OHLC数据.

但是为了逐个实例化每个交换类(很多对象),我想创建一个exchanges包含列表中所有交换数据的对象,这样我就可以请求第一次交换的exchanges[0]数据,来自第二次交换的数据exchanges[1]等等. .

import ccxt # import module

ex_bitfinex = ccxt.bitfinex()
ex_binance = ccxt.binance()
ex_okcoinusd = ccxt.okcoinusd()
...

ex = ["bitfinex",
      "binance",
      "okcoinusd"]

# This doesn't return the expected result
exchanges = ccxt.ex()
Run Code Online (Sandbox Code Playgroud)

使用我会用,lapply()但我怎么能在Python中实现这一点?

python ccxt

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

这是什么日期时间格式,我该如何解析它?

我有一些数据,我从API中提取,日期格式如下:'1522454400000'

不知道如何解析它,但这就是我所拥有的(尝试失败)

df = DataFrame(test)
df.columns = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume']
df.set_index('Date')
df.index = pd.to_datetime(df.index, unit = 'd')
Run Code Online (Sandbox Code Playgroud)

其中变量test是基础数据的列表.这不正确地解析了1970年的数据.

解析的结果:

1970-01-01 00:00:00.000000000
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

**********************编辑************************************

Python版本:3

熊猫版.0.23.0

这是一个可重复性的工作示例.但首先,这是我发现的事实.

日期格式:自1970年1月1日以来的64位Unix时间戳,以毫秒为单位

TIMEZONE:UTC

我的时区:UTC + 4(所需的日期时间指数)

代码:

import bitmex
import pandas as pd
from pandas import DataFrame
import datetime
import ccxt

api_connector = ccxt.bitmex({
    'enableRateLimit': True
})

#get OHLCV Data
testdata = api_connector.fetch_ohlcv('XBTZ18', '1h')

df2 = DataFrame(testdata)
df2.columns = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume']
#df2.set_index('Date')
df2.index = pd.to_datetime(df2.Date, unit='ms') …
Run Code Online (Sandbox Code Playgroud)

python datetime datetime-format pandas ccxt

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

Python Pandas Dataframes:使用行值创建列

我正在尝试用 python 复制这篇文章,作为提高 pandas 技能的通用方法。

现在,我面临以下问题。在该文档的第 11 页,您将看到表 12(a) 和表 2(b)。我找到了从表 11 到表 12(a) 的方法,但现在我陷入困境。

我有以下数据框:

    id  date    element value
12  MX17004 2010-02-02  tmax    27.3
13  MX17004 2010-02-02  tmin    14.4
22  MX17004 2010-02-03  tmax    24.1
23  MX17004 2010-02-03  tmin    14.4
44  MX17004 2010-03-05  tmax    32.1
45  MX17004 2010-03-05  tmin    14.2
Run Code Online (Sandbox Code Playgroud)

我如何使用它来获得“tmax”和“tmin”列?

当然,我可以使用 for 循环,但我在某处读到,每次您发现自己在操作数据帧时执行复杂的代码时,已经存在一个函数可以执行您想要执行的操作。

迄今为止我最好的尝试:

weather_molten.pivot(index='date', columns='element', values='value')
Run Code Online (Sandbox Code Playgroud)

结果 :

在此输入图像描述

正如你所看到的,我现在有一个多索引 DF(与文章中的结果相去甚远),我不再有“id”列......

任何想法 ?

感谢您的时间 !

python dataframe pandas

0
推荐指数
1
解决办法
3694
查看次数