gpt4 book ai didi

Python:创建值与列名匹配的数据框

转载 作者:行者123 更新时间:2023-12-05 05:38:57 24 4
gpt4 key购买 nike

我想将 2 个列表放在一个数据框中。

我的第一个列表包含各种日期。

my_dates = ['20/12/2024', '31/08/2022', '19/08/2022', '21/06/2024']

第二个列表是包含各种股票名称和日期的列表列表。

my_stocks = [
["AAPL", ['20/12/2024', '31/08/2022']],
["MSFT", ['20/12/2024', '31/08/2022', '21/06/2024']],
["TSLA", []],
["META", ['20/12/2024', '31/08/2022', '19/08/2022', '21/06/2024']]
]

我想将这两个列表放在一个数据框中,其中:

  • 标题/列名是 my_dates 的值
  • 每一行的第一个值是股票名称
  • “单元格”的值是日期,如果它等于列名
<表类="s-表"><头><日> 20/12/20242022/08/3119/08/202221/06/2024<正文>苹果2024/12/202022/08/31微软2024/12/202022/08/3121/06/2024特斯拉元2024/12/202022/08/3119/08/202221/06/2024

我想过类似的事情

new = []

for elem in my_stocks:
new.append(elem)


df = pd.DataFrame(new)

df = pd.concat([df[0],df[1].apply(pd.Series)],axis=1)

print(df)

但这不包括标题,并且日期与标题不匹配。

如您所见,我是 Python 的新手,非常感谢任何帮助!

非常感谢米卡

最佳答案

这是一种将每只股票创建为自己的 pandas 系列的方法,然后使用 pd.concat 将它们制作成数据框。然后它使用 my_dates 选择要使用的日期并转置表格以匹配您想要的输出

import pandas as pd

my_dates = ['20/12/2024', '31/08/2022', '19/08/2022', '21/06/2024']
my_stocks = [["AAPL", ['20/12/2024', '31/08/2022']],["MSFT", ['20/12/2024', '31/08/2022', '21/06/2024']], ["TSLA", []], ["META", ['20/12/2024', '31/08/2022', '19/08/2022', '21/06/2024']]]

stock_df = pd.concat((pd.Series(ds, ds, name=n, dtype='object') for n,ds in my_stocks), axis=1)
stock_df = stock_df.loc[my_dates]

stock_df = stock_df.T
print(stock_df)

enter image description here

关于Python:创建值与列名匹配的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72805694/

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