用lambda函数或推导式表示将列表内的字符串时间转化成时间戳
时间: 2023-12-17 11:02:24 浏览: 27
可以使用lambda函数和map()函数来将列表内的字符串时间转化成时间戳。
示例代码如下:
```python
import time
time_list = ['2022-03-01 12:00:00', '2022-03-02 14:30:00', '2022-03-03 18:45:00']
time_stamp_list = list(map(lambda x: int(time.mktime(time.strptime(x, '%Y-%m-%d %H:%M:%S'))), time_list))
print(time_stamp_list)
```
输出结果为:
```
[1646112000, 1646200200, 1646287500]
```
其中,lambda函数中的x代表列表中的每一个元素,time.strptime()函数用于将字符串时间转化为时间元组,time.mktime()函数用于将时间元组转化为时间戳。最后,使用list()函数将map()函数返回的迭代器转化为列表。
相关问题
jupyternotebook中将一列日期格式yyyymmdd转化为yyyy-mm-dd后从1970开始
可以借助Pandas库中的`pd.to_datetime()`函数将日期字符串转换为Pandas的Timestamp类型,然后再将其转换为从1970年1月1日开始的时间戳。具体操作如下:
```python
import pandas as pd
df = pd.read_csv('data.csv') # 读取包含日期列的CSV文件
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d') # 将日期列转换为Pandas的datetime类型
df['timestamp'] = df['date'].apply(lambda x: int(x.timestamp())) # 将日期转换为从1970年1月1日开始的时间戳
# 按需要的格式输出时间戳
df['formatted_timestamp'] = pd.to_datetime(df['timestamp'], unit='s').dt.strftime('%Y-%m-%d')
# 输出结果
print(df)
```
其中,`pd.to_datetime()`函数用于将日期列转换为Pandas的datetime类型,第二个参数`format='%Y%m%d'`表示原始日期字符串的格式为`yyyymmdd`;`apply()`函数用于将每个日期转换为从1970年1月1日开始的时间戳,`x.timestamp()`返回的是浮点数,需要强制转换为整型;`pd.to_datetime()`函数可以将时间戳转换为Pandas的datetime类型,第二个参数`unit='s'`表示时间戳的单位为秒,然后再通过`dt.strftime()`函数将日期格式化为`yyyy-mm-dd`的格式。
转换后,可以将时间戳作为新的列添加到DataFrame对象中,然后按需要的格式输出即可。
rdd时间戳数据转换为datetime类型
可以使用Python中的`datetime`模块来将RDD时间戳数据转换为`datetime`类型。假设你的RDD数据格式如下:
```
rdd_data = [('2022-01-01T00:00:00.000Z', 1), ('2022-01-02T00:00:00.000Z', 2)]
```
其中第一个元素是时间戳字符串,第二个元素是其他数据。你可以使用以下代码将时间戳字符串转换为`datetime`类型:
```python
from datetime import datetime
def parse_timestamp(timestamp):
return datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S.%fZ')
rdd_data = rdd_data.map(lambda x: (parse_timestamp(x[0]), x[1]))
```
这里定义了一个`parse_timestamp`函数,它使用`strptime`方法将字符串解析为`datetime`对象。然后使用`map`方法将RDD中的每个时间戳字符串转换为`datetime`对象。这样,你就可以在RDD中使用`datetime`对象进行操作了。