我想取消透视具有 MultiIndex 列的 DataFrame,但我很难获得我想要的确切输出。我尝试了该函数的所有参数pd.melt(),但无法成功......
这是我的输入:
import pandas as pd
indexes = [['TC1', 'TC2'], ['x', 'z', 'Temp']]
data = pd.DataFrame(columns=pd.MultiIndex.from_product(indexes))
data.loc[0,('TC1', 'x')] = 10
data.loc[0,('TC1', 'z')] = 100
data.loc[0,('TC1', 'Temp')] = 250
data.loc[0,('TC2', 'x')] = 20
data.loc[0,('TC2', 'z')] = 200
data.loc[0,('TC2', 'Temp')] = 255
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出类型,“时间”列是数据索引
Time TC x z Temp
0 0 TC1 10 100 250
1 0 TC2 20 200 255
Run Code Online (Sandbox Code Playgroud)
我的真实数据有更多的此类列TCx。有什么线索吗?
我想计算 SQLite 表中数据的移动平均值。我在 MySQL 中找到了几种方法,但在 SQLite 中找不到有效的方法。
在 SQL 中,我认为应该这样做(但是,我无法尝试...):
SELECT date, value,
avg(value) OVER (ORDER BY date ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING) as MovingAverageWindow7
FROM t ORDER BY date;
Run Code Online (Sandbox Code Playgroud)
但是,我看到了两个缺点:
实际上,我希望它计算每个日期的“价值”平均值,超过 +/-3 天(每周移动平均线)或 +/-15 天(每月移动平均线)
这是一个示例数据集:
CREATE TABLE t ( date DATE, value INTEGER );
INSERT INTO t (date, value) VALUES ('2018-02-01', 8);
INSERT INTO t (date, value) VALUES ('2018-02-02', 2);
INSERT INTO t (date, value) VALUES ('2018-02-05', 5);
INSERT INTO t (date, value) …Run Code Online (Sandbox Code Playgroud) 我正在阅读两种非常相似的 csv 文件。它们的长度大致相同,20 000 行。每条线代表每秒记录的参数。因此,第一列是时间戳。
在这两种情况下,命令是相同的:
data = pd.read_csv(file)
data['Timestamp'] = pd.to_datetime(data['Timestamp'])
Run Code Online (Sandbox Code Playgroud)
我检查两行的执行时间:
唯一的区别是日期模式。我不会怀疑。你知道为什么吗?你知道如何解决这个问题吗?
我想找到特定字典键具有特定值的所有行.不太清楚这样说,所以这里有一个例子:
data = [
{'key1' : 'value1', 'key2' : 'value2'},
{'key1' : 'value3', 'key2' : 'value4'},
{'key1' : 'value1', 'key2' : 'value5'}
]
out = data['key1' == 'value1']['key2']
Run Code Online (Sandbox Code Playgroud)
我想out等于['value2', 'value5'],但事实上它只返回第一个结果,即'value2'