在Python中,熊猫:
g = pd.Series(dict(a = 5, b =datetime(2018, 1,1)))
g['datetime'] = pd.Timestamp('2018-01-02')
Run Code Online (Sandbox Code Playgroud)
g 收益:
a 5
b 2018-01-01 00:00:00
datetime 1514851200000000000
dtype: object
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么时间戳在这里转换为其int值,以及如何避免问题并正确地将时间戳附加到系列?
我同意@MrE,他说:
我认为这是有道理的: 5 不是日期时间对象,因此 pandas 正在解析数据并发现您同时拥有数字和日期时间对象,并且它将两者解析为“对象”字符串,因为 dtype 需要在各个对象之间保持一致系列中的所有数据。日期时间的字符串表示形式是日期字符串,而不是时间戳。当您添加到它时,您可以修改单元格的数据类型
我真的同意,它必须找到 adtype并找到int,如果你删除'a'索引,它就会起作用(这基本上是检查上述内容是否正确):
g = pd.Series(dict(b =datetime(2018, 1,1)))
g['datetime'] = pd.Timestamp('2018-01-02')
print(g)
Run Code Online (Sandbox Code Playgroud)
输出:
b 2018-01-01
datetime 2018-01-02
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
所以这是真的。
只需在末尾添加一行:
g['datetime']=pd.to_datetime(g['datetime'])
Run Code Online (Sandbox Code Playgroud)
现在:
print(g)
Run Code Online (Sandbox Code Playgroud)
是:
a 5
b 2018-01-01 00:00:00
datetime 2018-01-02 00:00:00
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |