将所有的天气状况收集起来生成字符串列表
# 将一个中间用逗号隔开的字符串序列使用split将其分割,并让其自动生成在一个字符串列表
# 这样就减少我们 手动添加 " " 或者 ' ' 让其成为字符串列表
#
def str_handle():
str_werater = "晴、多云、阴、阵雨、雷阵雨、雷阵雨伴有冰雹、雨夹雪、小雨、中雨、大雨、暴雨、大暴雨、特大暴雨、阵雪、小雪、中雪、大雪、暴雪、雾、冻雨、沙尘暴、小雨-中雨、中雨-大雨、大雨-暴雨、暴雨-大暴雨、大暴雨-特大暴雨、小雪-中雪、中雪-大雪、大雪-暴雪、浮尘、扬沙、强沙尘暴、霾。"
# 方法一:
end_character = str_werater[:-1]
print(end_character)
# 方法二:
str_werater.rstrip(str_werater[-1])
# 方法三 : 去除末尾的中文写法 句号(。) 我喜欢用这个方法
str_werater2 = str_werater.rstrip('。')
list_str_weater = str_werater2.split('、')
return list_str_weater
这个文件包括日期、最高温度、每天的气温、天气状况
from python基础.split函数 import str_handle
def generate_weather_information(datetime1):
import pandas as pd
from datetime import datetime, timedelta
# 给定一个起始日期
start_date = datetime(2023, 1, 1)
# 指定要生成日期的数量
number_of_dates = datetime1
# 初始化一个空列表来存放生成的日期
dates_list = []
dates_list2 = []
# 循环递增日期
for _ in range(number_of_dates):
# 将当前日期添加到列表中
dates_list.append(start_date)
# 日期递增一天
start_date += timedelta(days=1)
# 打印生成的日期列表
for date in dates_list:
dates_list2.append(date.strftime('%Y-%m-%d')) # 格式化日期输出为'YYYY-MM-DD'
print("\n")
import random
# 随机生成天气
# 同样的字符串列表
string_list = str_handle
# 指定要随机选择的字符串数量,允许重复
number_of_strings_to_generate = datetime1
# 使用random.choices()函数选择指定数量的字符串,可重复
randomly_generated_strings = random.choices(string_list() , k=number_of_strings_to_generate)
# 天气随机生成
# 基础温度(浮点数)
base_temperature_celsius = 35.0
# 温度偏差范围(也是浮点数)
temperature_deviation_celsius = 15.0 # 注意这里是正的偏差范围,实际会取负和正
# 随机生成10个温度值(包括基础温度在内,偏差在给定范围内的浮点数)
random_temperatures = [
round(base_temperature_celsius + (random.uniform(-temperature_deviation_celsius, temperature_deviation_celsius)), 2)
for _ in range(datetime1)
]
# 输出随机生成的温度列表,每个温度值后附上°C
random_temperatures_with_unit = [f"{temp}°C" for temp in random_temperatures]
# 基础整数值
base_value = 35
# 波动范围(整数,正数表示波动范围的一半)
deviation = 7 # 这里设置为7,意味着波动范围是-7到+7
# 确保包含 base_value 在内的波动范围
min_value = base_value - deviation
max_value = base_value + deviation
# 随机生成10个在基础值附近波动的整数,包含边界值
random_integers_max_temperature= [
random.randint(min_value, max_value)
for _ in range(datetime1)
]
print(random_integers_max_temperature)
dataframe = pd.DataFrame({'日期': dates_list2, '最高温': random_integers_max_temperature, '温度':random_temperatures_with_unit,'天气':randomly_generated_strings })
# dataframe对象已经包含了我们所需要的值及字段,接下来将它输出在Studnet.csv文件中
dataframe.to_csv("D:/vegetable/气象信息.csv", encoding='utf-8-sig',index=False, sep=',')
# 读取数据
data_csv = pd.read_csv(r"D:/vegetable/气象信息.csv") # 读取刚才写入的文件
print("csv文件数据为:")
print(data_csv)
Weather_information = generate_weather_information(100)
print(Weather_information)