gpt4 book ai didi

python - Pandas 从循环中创建数据框

转载 作者:行者123 更新时间:2023-11-28 21:43:49 25 4
gpt4 key购买 nike

我正在尝试制作一个数据框,以便可以轻松地将其发送到 CSV,否则我必须手动执行此过程..

我希望这是我的最终输出。每个人都有一个从 1/1/2014 开始到 12/1/2016 的月份和年份组合:

      Name    date
0 ben 1/1/2014
1 ben 2/1/2014
2 ben 3/1/2014
3 ben 4/1/2014
....

12 dan 1/1/2014
13 dan 2/1/2014
14 dan 3/1/2014

到目前为止的代码:

import pandas as pd

days = [1]
months = list(range(1, 13))
years = ['2014', '2015', '2016']
listof_people = ['ben','dan','nathan', 'gary', 'Mark', 'Sean', 'Tim', 'Chris']

df = pd.DataFrame({"Name": listof_people})
for month in months:
df.append({'date': month}, ignore_index=True)
print(df)

当我尝试循环创建数据框时,它要么不起作用,要么出现索引错误(因为列表不匹配),我不知所措。

我进行了大量搜索并找到了一些类似的以下链接,但我无法对工作进行逆向工程以适合我的情况。

Filling empty python dataframe using loops

How to build and fill pandas dataframe from for loop?

我不想让任何人觉得他们在“做我的功课”,所以如果我在做一些简单的事情,请告诉我。

最佳答案

我认为您可以使用 productto_datetime 进行所有组合对于 date 列:

from  itertools import product

days = [1]
months = list(range(1, 13))
years = ['2014', '2015', '2016']
listof_people = ['ben','dan','nathan', 'gary', 'Mark', 'Sean', 'Tim', 'Chris']

df1 = pd.DataFrame(list(product(listof_people, months, days, years)))
df1.columns = ['Name', 'month','day','year']
print (df1)
Name month day year
0 ben 1 1 2014
1 ben 1 1 2015
2 ben 1 1 2016
3 ben 2 1 2014
4 ben 2 1 2015
5 ben 2 1 2016
6 ben 3 1 2014
7 ben 3 1 2015
8 ben 3 1 2016
9 ben 4 1 2014
10 ben 4 1 2015
...
...
df1['date'] = pd.to_datetime(df1[['month','day','year']])
df1 = df1[['Name','date']]
print (df1)
Name date
0 ben 2014-01-01
1 ben 2015-01-01
2 ben 2016-01-01
3 ben 2014-02-01
4 ben 2015-02-01
5 ben 2016-02-01
6 ben 2014-03-01
7 ben 2015-03-01
...
...

关于python - Pandas 从循环中创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41704838/

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