考虑一个数据框:
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)我对某种解决方案不感兴趣;我想要一种不影响我的原始数据框的动态方法。数据透视表似乎是最合乎逻辑的方法(据我所知),但也许还有更好的方法!
我有一个示例数据集。它有 2000 行和 15 列。最后一列将需要作为分类中的决策类。
我需要随机删除 10% 的属性值。所以列中 10% 的值0-13应该是NA.
我写了一个for循环。它随机化colNumber( 0-13) 和rowNumber( 0-2000) 并将值替换为NA。但我认为(并且我看到了这一点)这不是一个更快的解决方案。我试图在pandas.
也许有人有更好的主意?更多pandas解决方案?或者也许是完全不同的东西?
我是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)
使用r我会用,lapply()但我怎么能在Python中实现这一点?
我有一些数据,我从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 复制这篇文章,作为提高 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”列......
任何想法 ?
感谢您的时间 !