gpt4 book ai didi

python - Python 中 DataFrames 的 DataFrame (Pandas)

转载 作者:行者123 更新时间:2023-12-03 09:34:29 25 4
gpt4 key购买 nike

这里的想法是,每年,我都能够创建三个数据框(df1、df2、df3),每个数据框都包含不同的公司和股票价格('firm' 和 'price' 是 df1~df3 中的两列)。我想每年使用另一个数据框(下面命名为“商店”)来存储三个数据框。

这是我的代码:

store = pd.DataFrame(list(range(1967,2014)), columns=['year'])
for year in range(1967,2014):
....some codes that allow me to generate df1, df2 and df3 correctly...
store.loc[store['year']==year, 'df1']=df1
store.loc[store['year']==year, 'df2']=df2
store.loc[store['year']==year, 'df3']=df3

在此代码之后,我没有收到错误警告或任何内容。
但是在“存储”数据框中,列 'df1'、'df2' 和 'df3' 都是 'NAN' 值。

最佳答案

我认为 Pandas 为您的建议提供了更好的替代方案(理由如下)。

其中之一是 pandas.Panel 数据结构,这适用于您在这里所做的事情。

然而,正如 Wes McKinney(Pandas 的作者)在他的书 Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython 中指出的那样。 ,多维索引在很大程度上提供了更好的选择。

考虑以下替代代码:

dfs = []
for year in range(1967,2014):
....some codes that allow me to generate df1, df2 and df3
df1['year'] = year
df1['origin'] = 'df1'
df2['year'] = year
df2['origin'] = 'df2'
df3['year'] = year
df3['origin'] = 'df3'
dfs.extend([df1, df2, df3])
df = pd.concat(dfs)

这为您提供了一个包含 4 列的 DataFrame: 'firm' , 'price' , 'year' , 和 'origin' .

这使您可以灵活地:
  • 例如,通过 'year' 分层组织和 'origin' :df.set_index(['year', 'origin']) ,比如说,'origin''price' :df.set_index(['origin', 'price'])
  • groupby s按不同级别
  • 通常,按照许多不同的方式对数据进行切片和切块。

  • 您在问题中提出的建议使一个维度(起源)任意不同,并且很难想到这样做的优势。如果由于性能等原因需要沿某个维度进行拆分,则可以将 DataFrame 与标准 Python 数据结构更好地结合起来:
  • 将每年映射到具有其他三个维度的 Dataframe 的字典。
  • 三个 DataFrame,每个原点一个,每个都有三个维度。
  • 关于python - Python 中 DataFrames 的 DataFrame (Pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932060/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com