实验3 对“身份证号.txt”进行以下操作:读入“身份证号.txt”,然后打印出来;读入“身份证号.txt”,然后写到“身份证号.csv”,一共7列,其中该csv文件第一行各列要分别设置列名,最后使用Excel打开该文件。在“身份证号.txt”文件的最后1行写入数据,内容为:人数 x 平均年龄 y 男生数量 a 女生数量 b,其中x、y、a、b是通过程序统计出来的数;使用程序统计出每个省的人数,按人数降序排列,并写入“身份证号.csv”文件;将“身份证号.csv”中年龄与实际年龄不符合(当年日期-出生日期)的数据在“身份证号.csv”中修改过来(提示:使用pandas模块对csv进行修改)。
2条回答 默认 最新
关注【以下回答由 GPT 生成】
import pandas as pd from datetime import datetime # 1. 从名为“身份证号.txt”的文件中读取数据,然后将其打印出来。 with open('身份证号.txt', 'r') as file: data = file.read() print(data) # 2. 将“身份证号.txt”中的数据读入,并写入名为“身份证号.csv”的文件中,共有7列。第一行作为列名。 df = pd.read_csv('身份证号.txt', sep='\t', header=None, names=['姓名', '身份证号', '性别', '省份', '出生日期', '年龄']) df.to_csv('身份证号.csv', index=False) # 3. 在“身份证号.txt”文件的最后一行写入以下数据: 人数x 平均年龄y 男生数量a 女生数量b,其中x、y、a、b是通过程序统计出来的数据。 num_people = df.shape[0] average_age = df['年龄'].mean() male_count = df[df['性别'] == '男'].shape[0] female_count = df[df['性别'] == '女'].shape[0] with open('身份证号.txt', 'a') as file: file.write(f'{num_people} {average_age} {male_count} {female_count}') # 4. 使用程序统计每个省的人数,并按人数降序排列,然后将结果写入“身份证号.csv”文件。 province_counts = df['省份'].value_counts().reset_index() province_counts.columns = ['省份', '人数'] province_counts.to_csv('身份证号.csv', mode='a', index=False) # 5. 将“身份证号.csv”中年龄与实际年龄不符合的数据进行修改。 current_year = datetime.now().year df['出生日期'] = pd.to_datetime(df['出生日期']) df['年龄'] = current_year - df['出生日期'].dt.year df.to_csv('身份证号.csv', index=False)
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报