这段代码的功能是将一个制裁名单的 Excel 文件中的每个公司,从其上市年份开始到当前时间为止的每个月,都新建一行数据,并将结果保存为一个新的 Excel 文件。其中,新建的每行数据包括公司名称和年月信息。具体实现步骤如下:

  1. 使用 pandas 库的 'read_excel' 方法读取 Excel 文件,并将其保存为 DataFrame 对象。

  2. 使用 pandas 库的 'to_datetime' 方法将 DataFrame 对象中的上市年份列转化为日期格式。

  3. 新建一个空的 DataFrame 对象,用于存储新的数据。

  4. 遍历原始 DataFrame 中的每行数据,获取公司名称、上市年份和当前年份。

  5. 使用 pandas 库的 'date_range' 方法循环遍历从上市年份到当前年份每个月的日期。

  6. 将每个年月转化为字符串,并新建一行数据,包括公司名称和年月信息。

  7. 将新建的行数据转换为 Series 类型,并使用 pandas 库的 'concat' 方法将其添加到新的 DataFrame 对象中。

  8. 最后,使用 pandas 库的 'to_excel' 方法将新的 DataFrame 对象保存为 Excel 文件。

import pandas as pd

# 读取数据
df = pd.read_excel('制裁名单.xlsx')

# 将第四列转化为日期格式
df['year'] = pd.to_datetime(df['year'], format='%Y')

# 新建一个空的DataFrame
new_df = pd.DataFrame()

# 遍历每行数据
for index, row in df.iterrows():
    # 获取公司名称
    company = row['company']
    
    # 获取上市年份和当前年份
    start_year = row['year']
    end_year = pd.Timestamp('2021')
    
    # 循环遍历每个月
    for year_month in pd.date_range(start_year, end_year, freq='MS'):
        # 将年月转化为字符串
        year_month_str = year_month.strftime('%Y-%m')
        
        # 新建一行数据
        new_row = {
            'company': company,
            'year_month': year_month_str
        }
        # 将新行转换为 Series 类型
        new_series = pd.Series(new_row)

        # 将新行添加到 DataFrame 中
        new_df = pd.concat([new_df, new_series], ignore_index=True)


# 将新的DataFrame保存为Excel文件
new_df.to_excel('new_data.xlsx', index=False)

这段代码使用 Python Pandas 库进行数据处理,可以帮助你将一个制裁名单的 Excel 文件中的每个公司,从其上市年份开始到当前时间为止的每个月,都新建一行数据,并将结果保存为一个新的 Excel 文件。

Python Pandas 代码:将制裁名单数据扩展至每个月

原文地址: https://www.cveoy.top/t/topic/nOIO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录