个人博客 用于记载日常收集的一些技术文章 ...
python : 数字转文本 python : 数字转文本 在 Python 中,将数字转换为文本,并且进行拼接,通常有几种方式可以实现。这里的拼接可以指的是将数字转为文本后,与其他字符串连接。

方法 1: 使用 str() 函数

str() 是 Python 中的一个内建函数,它可以将数字转换为字符串。然后可以使用 + 运算符进行拼接。

num1 = 123
num2 = 456

# 将数字转为文本并拼接
result = str(num1) + " and " + str(num2)
print(result) # 输出: "123 and 456"

方法 2: 使用 f-string (格式化字符串)

在 Python 3.6 及以上版本,推荐使用 f-string 来进行字符串拼接,这种方式不仅简洁,而且更具可读性。

num1 = 123
num2 = 456

# 使用 f-string 拼接
result = f"{num1} and {num2}"
print(result) # 输出: "123 and 456"

方法 3: 使用 format() 方法

如果你在使用较老的 Python 版本(比如 2.x),可以使用 format() 方法进行数字转换与拼接。

num1 = 123
num2 = 456

# 使用 format() 方法拼接
result = "{} and {}".format(num1, num2)
print(result) # 输出: "123 and 456"

方法 4: 使用 % 运算符 (旧式格式化)

这种方式在 Python 3 之前较为常见,虽然不推荐使用,但它仍然适用。

num1 = 123
num2 = 456

# 使用 % 运算符进行拼接
result = "%d and %d" % (num1, num2)
print(result) # 输出: "123 and 456"

总结

str() 方法是最简单直接的方式,将数字转换为字符串后用 + 拼接。
f-string 是 Python 3.6+ 中最推荐的方式,既简洁又高效。
format() 是一种较为通用的方式,适用于多种 Python 版本。
% 运算符是较旧的格式化方式,虽然可以使用,但现代 Python 中不太推荐使用。
郭少锋 创建 2024-11-27 11:24:38 python
python : python 日期计算 python : python 日期计算 import pandas as pd
import numpy as np
import datetime as dt

df = pd.read_excel('./日期问题.xlsx') # 导入数据

df['action_date'] = pd.to_datetime(df['action_date']) # 将日期列转成日期格式

df # 查看数据

#dt模块可轻松获取日期基本属性

df['年']=df['action_date'].dt.year
df['季度']=df['action_date'].dt.quarter
df['月']=df['action_date'].dt.month
df['日']=df['action_date'].dt.day
df['星期几']=df['action_date'].dt.dayofweek
df['周次']=df['action_date'].dt.week
df['时']=df['action_date'].dt.hour
df['分']=df['action_date'].dt.minute
df['秒']=df['action_date'].dt.second


df.head()

#计算一年中的第几天
#通过对天, 时,分的四则运算将日期转为序列数值数据

df['一年中的第几天']=df['action_date'].dt.dayofyear

df['一天中的第几分钟']=df['action_date'].apply(lambda x: x.minute + x.hour*60)

df['一天中的第几个10分钟'] = df['时'] * 6 + df['分'] // 10

df['数值'] = df["action_date"].values.astype(np.int64) // 10 ** 9


df['年月'] = df['action_date'].dt.year * 100 + df['action_date'].dt.month # 转年月(数值)


#判断日期是否闰年,年初年末,月初月末…
#apply

df['是否闰年'] = df['action_date'].apply(lambda x: x.is_leap_year) # 是否闰年
df['是否月初'] = df['action_date'].apply(lambda x: x.is_month_start) # 是否月初
df['是否月末'] = df['action_date'].apply(lambda x: x.is_month_end) # 月末
df['是否季节初'] = df['action_date'].apply(lambda x: x.is_quarter_start) # 季度初
df['是否季节末'] = df['action_date'].apply(lambda x: x.is_quarter_end) # 季度末
df['是否年初'] = df['action_date'].apply(lambda x: x.is_year_start) # 年初
df['是否年尾'] = df['action_date'].apply(lambda x: x.is_year_end) # 年内末
df['是否周末'] = df['action_date'].apply(lambda x: True if x.dayofweek in [5, 6] else False) # 是否周末

df.loc[((df['时'] >= 8) & (df['时'] < 22)), '是否营业时间'] = True


#字符串时段,季节

period_dict ={
23: '深夜', 0: '深夜', 1: '深夜',
2: '凌晨', 3: '凌晨', 4: '凌晨',
5: '早晨', 6: '早晨', 7: '早晨',
8: '上午', 9: '上午', 10: '上午', 11: '上午',
12: '中午', 13: '中午',
14: '下午', 15: '下午', 16: '下午', 17: '下午',
18: '傍晚',
19: '晚上', 20: '晚上', 21: '晚上', 22: '晚上',
}

df['时间段']=df['时'].map(period_dict)

# 一年中的哪个季度

season_dict = {
1: '春季', 2: '春季', 3: '春季',
4: '夏季', 5: '夏季', 6: '夏季',
7: '秋季', 8: '秋季', 9: '秋季',
10: '冬季', 11: '冬季', 12: '冬季',
}

df['季节']=df['月'].map(season_dict)



#for循环快捷计算

time_features = ['year', 'month', 'quarter', 'week', 'day', 'dayofweek', 'dayofyear']
dtype = np.int16

for time_feature in time_features:

df[time_feature] = getattr(df['action_date'].dt, time_feature).astype(dtype)


#时间间隔天数计算
# 设置初始的时间 2021-06-01

base_time = datetime.datetime.strptime('2021-06-01', '%Y-%m-%d')

df['时间差'] = df['action_date'].apply(lambda x: x-base_time).dt.days # 计算时间差

df['间隔天数'] = list(map(lambda x: x.days, pd.to_datetime('today') - df['action_date'])) # 距离今天天数
郭少锋 编辑 2024-04-10 16:15:40 创建 2023-11-18 21:40:25 python
python : 提示输入框 python : 提示输入框 # 使用 input() 获取终端输入的值,再赋值给变量 study
study = input("我们可不可以顺利学完Python?")
# 打印表达式的布尔值
print(study == "可以")
郭少锋 创建 2023-11-21 19:05:39 python
python : 日期计算 python : 日期计算 import datetime

current_datetime = datetime.datetime.now()

print("当前日期和时间:", current_datetime)

formatted_date = current_datetime.strftime("%Y-%m-%d")

print("格式化后的日期:", formatted_date)

previous_day = current_datetime - datetime.timedelta(days=1)

print("前一天的日期:", previous_day.strftime("%Y-%m-%d"))

next_day = current_datetime + datetime.timedelta(days=1)

print("后一天的日期:", next_day.strftime("%Y-%m-%d"))
郭少锋 创建 2023-11-18 21:39:59 python
python : 时区 python : 时区 from datetime import datetime
import pytz

now = datetime.now() # 获取当前日期和时间

shanghai_timezone = pytz.timezone('Asia/Shanghai')
shanghai_time = now.astimezone(shanghai_timezone) # 将当前时间 转换为 上海时区 对应的时间

print(shanghai_time)
郭少锋 创建 2023-11-18 21:39:37 python
python : 日期计算 python : 日期计算 import time
from datetime import datetime, date, timedelta

now_date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 当前日期
print("now_date: {}".format(now_date))


# 昨天
month_yesterday = (date.today() + timedelta(days=-1)).month
day_yesterday = (date.today() + timedelta(days=-1)).day

print(f"month_yesterday: {month_yesterday}, day_yesterday: {day_yesterday}")

# 当前时间的年月日
year = datetime.now().year
month = datetime.now().month
day = datetime.now().day

print(f"year: {year}, month: {month}, day: {day}")

year, month, day, hour, minute, second:获取日期和时间的年、月、日、时、分、秒。

weekday:获取日期的星期几,返回一个整数,其中 0 表示星期一,6 表示星期日。

date:获取日期部分,返回一个 date 对象。

time:获取时间部分,返回一个 time 对象。
郭少锋 创建 2023-11-18 21:39:08 python
python : 日期计算 python : 日期计算 from datetime import datetime, timedelta # 引用组件

----------------------------------------------------------------------------------------------------
now = datetime.now() # 获取当前日期和时间

print(now) # 输出值

----------------------------------------------------------------------------------------------------
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") # 将日期和时间格式化为指定格式

print(formatted_date)

----------------------------------------------------------------------------------------------------
one_day_later = now + timedelta(days=1) # 当前时间 + 1 天

print(one_day_later)

----------------------------------------------------------------------------------------------------
date_string = "2023-07-03 08:33:50" # 字符串表示的日期和时间

parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S") # 转换成 datetime 对象

print(parsed_date)

----------------------------------------------------------------------------------------------------
date1 = datetime.date(2022, 1, 1)
date2 = datetime.date(2022, 1, 10)

delta = date2 - date1 # 计算日期差

print("日期差:", delta.days)
郭少锋 创建 2023-11-18 21:38:10 python