[英]Jupyter Labs: Kernel Dies when Converting Tuple to PandasData Frame
我有以下元組,我正在嘗試從中創建數據框:
testing =
([datetime.datetime(2020, 2, 5, 0, 0),
datetime.datetime(2020, 2, 5, 2, 40),
datetime.datetime(2020, 2, 5, 5, 20),
datetime.datetime(2020, 2, 5, 8, 0),
datetime.datetime(2020, 2, 5, 10, 40),
datetime.datetime(2020, 2, 5, 13, 20),
datetime.datetime(2020, 2, 5, 16, 0),
datetime.datetime(2020, 2, 5, 18, 40),
datetime.datetime(2020, 2, 5, 21, 20),
datetime.datetime(2020, 2, 6, 0, 0)],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
我使用這個片段來創建一個數據框:
df_testing = pd.DataFrame(testing)
df_testing.head()
但是,這會導致內核每次都死掉。 如果我只循環 1 個項目(例如,我執行 df_testing = pd.DataFrame(testing[0])),則代碼運行良好。
我對使用元組不是很熟悉,所以是否有某種類型的屬性阻止它們變成數據框?
注意:有很多代碼會生成這個“測試變量”,它只是我最終想要轉換的整體數據的一部分。 我在這里為示例填寫了一些虛擬數據。 如果可能,我寧願不修改此變量的數據類型。
另外,我正在運行 Python 3.7,以防萬一。
我會用:
new_df = pd.Series(dict(zip(*test))).to_frame('name_column')
print(new_df)
或者
new_df = pd.DataFrame({'name_column':dict(zip(*test))})
print(new_df)
輸出
name_column
2020-02-05 00:00:00 1
2020-02-05 02:40:00 2
2020-02-05 05:20:00 3
2020-02-05 08:00:00 4
2020-02-05 10:40:00 5
2020-02-05 13:20:00 6
2020-02-05 16:00:00 7
2020-02-05 18:40:00 8
2020-02-05 21:20:00 9
2020-02-06 00:00:00 10
如果要轉換列中的索引,可以使用DataFrame.reset_index
另一種選擇是DataFrame.transpose
new_df = pd.DataFrame(test,index=['Date','values']).T
print(new_df)
Date values
0 2020-02-05 00:00:00 1
1 2020-02-05 02:40:00 2
2 2020-02-05 05:20:00 3
3 2020-02-05 08:00:00 4
4 2020-02-05 10:40:00 5
5 2020-02-05 13:20:00 6
6 2020-02-05 16:00:00 7
7 2020-02-05 18:40:00 8
8 2020-02-05 21:20:00 9
9 2020-02-06 00:00:00 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.