问题:Pandas - 切片 datetime64[ns] 列 returns 19 位整数列表
Problem: Pandas - Slicing a datetime64[ns] column returns a list of 19-digit integers
我正在尝试将数据框中的一列日期转换为列表,但是当我将其切片将日期转换为 19 位整数时发生了一些事情。这是原始 df 以及列 dtypes:
CalendarDate BusinessDay
2 2022-05-04 1
3 2022-05-03 1
4 2022-05-02 1
5 2022-04-29 1
6 2022-04-28 1
7 2022-04-27 1
8 2022-04-26 1
CalendarDate datetime64[ns]
BusinessDay int64
dtype: object
这是将数据框列转换为列表的函数:
def slice_single_dataframe_column_into_list(dataframe, column_name):
sliced_column = dataframe.loc[:,[column_name]].values.tolist()
print(sliced_column)
column_list = []
for element in sliced_column:
column_list.append(element)
return column_list
这是切片后打印的内容:
[[1651622400000000000], [1651536000000000000], [1651449600000000000], [1651190400000000000], [1651104000000000000], [1651017600000000000], [1650931200000000000]]
我尝试将该 int 转换为时间戳,但我得到 'invalid arguement'。我只是不确定这里发生了什么。我希望列表中的项目看起来与数据框中的完全一样。
pd.to_datetime('1970-01-01').value
returns UNIX 时间戳和 df[datetimecolumn].values.tolist()
似乎直接 returns UNIX 时间戳。
您可以通过直接在 Series 上调用 tolist
来避免。
def slice_single_dataframe_column_into_list(dataframe, column_name):
sliced_column = dataframe[column_name].tolist()
# ^^ Changes here
column_list = []
for element in sliced_column:
column_list.append(element)
return column_list
我正在尝试将数据框中的一列日期转换为列表,但是当我将其切片将日期转换为 19 位整数时发生了一些事情。这是原始 df 以及列 dtypes:
CalendarDate BusinessDay
2 2022-05-04 1
3 2022-05-03 1
4 2022-05-02 1
5 2022-04-29 1
6 2022-04-28 1
7 2022-04-27 1
8 2022-04-26 1
CalendarDate datetime64[ns]
BusinessDay int64
dtype: object
这是将数据框列转换为列表的函数:
def slice_single_dataframe_column_into_list(dataframe, column_name):
sliced_column = dataframe.loc[:,[column_name]].values.tolist()
print(sliced_column)
column_list = []
for element in sliced_column:
column_list.append(element)
return column_list
这是切片后打印的内容:
[[1651622400000000000], [1651536000000000000], [1651449600000000000], [1651190400000000000], [1651104000000000000], [1651017600000000000], [1650931200000000000]]
我尝试将该 int 转换为时间戳,但我得到 'invalid arguement'。我只是不确定这里发生了什么。我希望列表中的项目看起来与数据框中的完全一样。
pd.to_datetime('1970-01-01').value
returns UNIX 时间戳和 df[datetimecolumn].values.tolist()
似乎直接 returns UNIX 时间戳。
您可以通过直接在 Series 上调用 tolist
来避免。
def slice_single_dataframe_column_into_list(dataframe, column_name):
sliced_column = dataframe[column_name].tolist()
# ^^ Changes here
column_list = []
for element in sliced_column:
column_list.append(element)
return column_list