如何在 StackOverflow 上与 pd.datetime 列共享 pandas 数据框
How to share a pandas dataframe with pd.datetime column on StackOverflow
在问另一个问题时,由于列是 pd.datetime.date 和 pd.datetime.time,我很难在此处粘贴玩具 DataFrame。我希望人们回答能够快速导入玩具 df - 它仍然比下面的玩具 df 的玩具稍大。
我已阅读 this and another post,其中解释了如何使用 df.head().to_dict()
并复制数据帧。我做了一个玩具示例 df 并尝试了该方法。这是 df.head().to_dict()
:
的结果
In [0]: df = pd.DataFrame({'location':['Silvretta'], 'date':[pd.to_datetime('2022-03-30 07:35:00').date()], 'time':[pd.to_datetime('2022-03-30 07:35:00').time()]})
In [1]: s = df.head().to_dict()
In [2]: print(s)
Out [2]
{'location': {0: 'Silvretta'}, 'date': {0: datetime.date(2022, 3, 30)}, 'time': {0: datetime.time(7, 35)}}
现在,当我调用 pd.DataFrame(s)
时,我获得了我的数据框,但是当我手动复制字符串时(就像帮助我的人必须做的那样),我收到以下错误。
In [3] pd.DataFrame(s) # works
In [4] pd.DataFrame({'location': {0: 'Silvretta'}, 'date': {0: datetime.date(2022, 3, 30)}, 'time': {0: datetime.time(7, 35)}})
Out [4]
---------------------------------------------------------------------------
[...]
NameError: name 'datetime' is not defined
首先,我不明白为什么这两个选项之间存在差异。为什么会有所作为?
最后,如何很好地格式化和显示带有日期时间的 DataFrame 以获得帮助? In [0]
明显过于简单了,所以我不想在下一个问题中 'build' 我的 df,而是粘贴最终的可复制版本。
感谢您的帮助!
我试图通过使用 Whosebug table 格式化 table 来显示 table,但这非常耗时,即使对于 5x6 矩阵(是否有技巧?)并且不可复制(我认为)。
使用字典的共享对我不起作用。我可以 post 构建 df 的整个方法,但我不想让我要问的下一个问题过载。
如果需要使用字典创建新的 DataFrame 使用 import datetime
来正确导入日期时间变量:
import datetime
print (pd.DataFrame({'location': {0: 'Silvretta'},
'date': {0: datetime.date(2022, 3, 30)},
'time': {0: datetime.time(7, 35)}}))
location date time
0 Silvretta 2022-03-30 07:35:00
说明:
如果通过 pd.DataFrame(s)
没有解析的 dict 打印版本,那么工作正常,否则解析日期时间的字符串表示需要 import datetime
.
在问另一个问题时,由于列是 pd.datetime.date 和 pd.datetime.time,我很难在此处粘贴玩具 DataFrame。我希望人们回答能够快速导入玩具 df - 它仍然比下面的玩具 df 的玩具稍大。
我已阅读 this and another post,其中解释了如何使用 df.head().to_dict()
并复制数据帧。我做了一个玩具示例 df 并尝试了该方法。这是 df.head().to_dict()
:
In [0]: df = pd.DataFrame({'location':['Silvretta'], 'date':[pd.to_datetime('2022-03-30 07:35:00').date()], 'time':[pd.to_datetime('2022-03-30 07:35:00').time()]})
In [1]: s = df.head().to_dict()
In [2]: print(s)
Out [2]
{'location': {0: 'Silvretta'}, 'date': {0: datetime.date(2022, 3, 30)}, 'time': {0: datetime.time(7, 35)}}
现在,当我调用 pd.DataFrame(s)
时,我获得了我的数据框,但是当我手动复制字符串时(就像帮助我的人必须做的那样),我收到以下错误。
In [3] pd.DataFrame(s) # works
In [4] pd.DataFrame({'location': {0: 'Silvretta'}, 'date': {0: datetime.date(2022, 3, 30)}, 'time': {0: datetime.time(7, 35)}})
Out [4]
---------------------------------------------------------------------------
[...]
NameError: name 'datetime' is not defined
首先,我不明白为什么这两个选项之间存在差异。为什么会有所作为?
最后,如何很好地格式化和显示带有日期时间的 DataFrame 以获得帮助? In [0]
明显过于简单了,所以我不想在下一个问题中 'build' 我的 df,而是粘贴最终的可复制版本。
感谢您的帮助!
我试图通过使用 Whosebug table 格式化 table 来显示 table,但这非常耗时,即使对于 5x6 矩阵(是否有技巧?)并且不可复制(我认为)。 使用字典的共享对我不起作用。我可以 post 构建 df 的整个方法,但我不想让我要问的下一个问题过载。
如果需要使用字典创建新的 DataFrame 使用 import datetime
来正确导入日期时间变量:
import datetime
print (pd.DataFrame({'location': {0: 'Silvretta'},
'date': {0: datetime.date(2022, 3, 30)},
'time': {0: datetime.time(7, 35)}}))
location date time
0 Silvretta 2022-03-30 07:35:00
说明:
如果通过 pd.DataFrame(s)
没有解析的 dict 打印版本,那么工作正常,否则解析日期时间的字符串表示需要 import datetime
.