【发布时间】:2017-05-16 21:07:53
【问题描述】:
我将几个 Pandas DataFrame 连接到一个大 DataFrame 中,以将结果打印到 CSV 文件中。
我报告了多周期计算范围内的多个细分(例如 0 到 3)。每个段都有几个与之关联的 DataFrame(例如 df1 和 df2)。 为简化起见,这里只假设一个段(每个不同的段都有一个特定的键或场景键)。
一切正常,除了将列名打印到 CSV。
我试过pd.concat(..., names = " ... ") - 但这不起作用。唯一打印到标题的是不同的日期。
具体来说,我想将“Full Key”、“Scenario”和“Metric”打印到 CSV 的列标题(在第 0、1 和 2 列中)并继续打印句点(在第 3 列到第 3 列中) 6).
在 Pandas 中是否有一种简单的方法可以做到这一点?
例子
import pandas as pd
import numpy as np
dates = [0, 1, 3, 3]
labels1 = ["A", "B", "C"]
labels2 = ["X", "Y", "Z"]
rand1 = np.random.rand(3,4)
rand2 = np.random.rand(3,4)
df1 = pd.DataFrame(rand1, columns=dates, index=labels1)
df2 = pd.DataFrame(rand2, columns=dates, index=labels2)
# Differs for each segment (note: just one segment assumed here for simplification)
key = "rand_key"
scenario = "scenario"
df_con = pd.concat([df1, df2], keys=pd.MultiIndex.from_product(
[[key], [scenario], ["Data Frame 1", "Data Frame 2"]],
names=['Full Key', 'Scenario', 'Metric']))
print(df_con)
输出
0 1 3 3
rand_key scenario Data Frame 1 A 0.381607 0.251023 0.225814 0.221244
B 0.829346 0.148782 0.601416 0.410067
C 0.785393 0.792234 0.012604 0.476273
Data Frame 2 X 0.960281 0.563819 0.286736 0.530170
Y 0.829257 0.986729 0.790758 0.013667
Z 0.287239 0.796072 0.576769 0.694845
【问题讨论】:
标签: python pandas concat multi-index