簡體   English   中英

如何從 3 個元素元組列表創建 Pandas 數據框?

[英]How to create Pandas dataframe from list of 3 element tuples?

我正在嘗試從具有 3 個元素的元組列表構建一個數據框,看起來像 [(name, date, score), ... ]。

我想將名稱作為索引列,將日期作為列標題,分數是數據。 以下是我所做的。

df = pd.DataFrame({'name':list({x[0] for x in data})}).set_index('name')
date_list = list({x[1] for x in data})
date_list.sort()

df = df.reindex(columns = date_list)

for x in data:
    df.loc[x[0], x[1]] = x[2]

它有效,但由於數據集很大,需要一段時間。 有沒有更好的方法來構建它?

這是pivot 的一個用例:

In [1]: import pandas as pd

In [2]: from datetime import date, timedelta

In [3]: today = date.today()

In [4]: data = [("Andrew", today, 100), ("Yixing", today, 105), ("Bam", today + timedelta(days=1), 93
   ...: )]

In [5]: data
Out[5]:
[('Andrew', datetime.date(2021, 11, 11), 100),
 ('Yixing', datetime.date(2021, 11, 11), 105),
 ('Bam', datetime.date(2021, 11, 12), 93)]

In [17]: df = pd.DataFrame(data, columns=["name", "date", "score"])

In [18]: df
Out[18]:
     name        date  score
0  Andrew  2021-11-11    100
1  Yixing  2021-11-11    105
2     Bam  2021-11-12     93

In [23]: df.pivot(index="name", columns="date")
Out[23]:
            score
date   2021-11-11 2021-11-12
name
Andrew      100.0        NaN
Bam           NaN       93.0
Yixing      105.0        NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM