import pandas as pd

data = {
    '姓名': ['aesfd', 'fasefa', 'aeagd', 'aef', 'eaf'],
    '国籍': [2, 5, 4, 4, 1],
    '性别': ['男', '女', '女', '男', '女'],
    '出生年': [1942, 1985, 1946, 1999, 2010],
    '出生月': [8, 10, 10, 5, 6],
    '出生日': [10, 4, 15, 13, 24]
}

df = pd.DataFrame(data, index=[1, 2, 3, 4, 5])

# (a) 将人员信息编码为字符串
df['ID'] = df.index
df['信息'] = df.apply(lambda x: f"{x['姓名']}:{x['国籍']}国人,性别{x['性别']},生于{x['出生年']}年{x['出生月']}月{x['出生日']}日", axis=1)
print(df[['ID', '信息']])

# (b) 将阿拉伯数字日期转换为中文日期
def chinese_date(year, month, day):
    chinese_year = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
    chinese_month = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十一', '十二']
    chinese_day = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '二十一', '二十二', '二十三', '二十四', '二十五', '二十六', '二十七', '二十八', '二十九', '三十', '三十一']
    
    chinese_year_str = ''.join([chinese_year[int(digit)] for digit in str(year)])
    chinese_month_str = chinese_month[month]
    chinese_day_str = chinese_day[day]
    
    return f"{chinese_year_str}年{chinese_month_str}月{chinese_day_str}日"

df['信息'] = df.apply(lambda x: x['信息'].replace(f"{x['出生年']}年{x['出生月']}月{x['出生日']}日", chinese_date(x['出生年'], x['出生月'], x['出生日'])), axis=1)
print(df[['ID', '信息']])

# (c) 使用equals方法验证数据一致性
print(df[['ID', '姓名', '国籍', '性别', '出生年', '出生月', '出生日']].equals(df[['ID', '姓名', '国籍', '性别', '出生年', '出生月', '出生日']]))
Pandas数据处理:字符串编码、日期转换与数据验证

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

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