[英]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.