随机生成天气信息csv 文件

将所有的天气状况收集起来生成字符串列表

# 将一个中间用逗号隔开的字符串序列使用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)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值