Python Pandas 代码:将制裁名单数据扩展至每个月
这段代码的功能是将一个制裁名单的 Excel 文件中的每个公司,从其上市年份开始到当前时间为止的每个月,都新建一行数据,并将结果保存为一个新的 Excel 文件。其中,新建的每行数据包括公司名称和年月信息。具体实现步骤如下:
-
使用 pandas 库的 'read_excel' 方法读取 Excel 文件,并将其保存为 DataFrame 对象。
-
使用 pandas 库的 'to_datetime' 方法将 DataFrame 对象中的上市年份列转化为日期格式。
-
新建一个空的 DataFrame 对象,用于存储新的数据。
-
遍历原始 DataFrame 中的每行数据,获取公司名称、上市年份和当前年份。
-
使用 pandas 库的 'date_range' 方法循环遍历从上市年份到当前年份每个月的日期。
-
将每个年月转化为字符串,并新建一行数据,包括公司名称和年月信息。
-
将新建的行数据转换为 Series 类型,并使用 pandas 库的 'concat' 方法将其添加到新的 DataFrame 对象中。
-
最后,使用 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 文件。
原文地址: https://www.cveoy.top/t/topic/nOIO 著作权归作者所有。请勿转载和采集!