【问题标题】:Making a dataframe from a dictionary of pd Series of varying lengths从不同长度的 pd 系列字典中制作数据框
【发布时间】:2021-09-22 18:54:23
【问题描述】:

我有一系列不同长度的字典。我想把它们都放在一个df中。我也想将每个系列的索引添加到索引中。

例子:

    dict = {'2021-07-16': pd.Series({125.0:229.78}), 
            '2021-07-23' : pd.Series({170.0 : 184.65, 175.0 : 179.80})}

我想要什么(抱歉不知道表格是如何工作的):

pd = | index |  col1   | col2   |
     | 125.0 | 229.78  | NULL   |
     | 170.0 | NULL    | 184.65 |
     | 175.0 | NULL    | 179.80 |

这是我正在尝试的:

call_series_pd = pd.DataFrame(dict([(k,pd.Series(v)) for k,v in test.items()]))

当我这样做时,我收到以下错误:

ValueError: cannot reindex from a duplicate axis

这可能是因为某些系列的索引重叠。

【问题讨论】:

  • 请发布有效的字典。我们无法使用您的dict 复制/粘贴和测试

标签: python arrays pandas dataframe series


【解决方案1】:

试试:

df = pd.concat(
    [s.to_frame().reset_index() for s in dct.values()],
    axis=1,
)
df.columns = [
    c for i in range(1, len(dct) + 1) for c in (f"col{i}_index", f"col{i}")
]
print(df)

打印:

   col1_index    col1  col2_index    col2
0       125.0  229.78       170.0  184.65
1       130.0  224.83       175.0  179.80
2       135.0  219.78       180.0  174.78
3       140.0  214.73       185.0  169.68
4       145.0  209.63       190.0  164.78
5       490.0    0.01       445.0    0.01
6       500.0    0.01       450.0    0.02
7       520.0    0.01       455.0    0.01
8       540.0    0.01       460.0    0.01
9       560.0    0.01       465.0    0.01

编辑:另一种解决方案:

dct = {
    "2021-07-16": pd.Series({125.0: 229.78}),
    "2021-07-23": pd.Series({170.0: 184.65, 175.0: 179.80}),
}

data = pd.DataFrame(dct.values()).T
data.columns = "col_" + (data.columns + 1).astype(str)
print(data)

打印:

        col_1   col_2
125.0  229.78     NaN
170.0     NaN  184.65
175.0     NaN  179.80

【讨论】:

  • 谢谢。你知道我怎样才能将它们全部放到同一个索引上吗?
  • @ChrisB 试试df.melt(["col1", "col2"]).drop("variable", 1).set_index("value").sort_index()
  • 嗯,错误。随机列被命名为“0”。上面第二个等式中的 c 是什么?
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 2023-02-07
  • 2021-09-06
  • 2020-06-04
  • 2013-11-13
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多