用Python对student.csv(属性有ID,姓名,性别,身份证号码,籍贯)实现 2.抽取身份证上的出生时间,包括年,月,日,放在不同属性下 3.抽取籍贯,分成省,市,县 4.找出所有姓"李“的 女同学 5.找出星座是处女座的同学
时间: 2024-09-26 21:09:51 浏览: 42
首先,你需要使用Python的pandas库来处理CSV文件,这是一个强大的数据处理工具。以下是逐步操作的示例:
1. 导入所需的库并读取csv文件:
```python
import pandas as pd
# 加载student.csv数据
df_students = pd.read_csv('student.csv')
```
2. 抽取身份证出生信息并创建新列(假设身份证格式支持解析):
```python
from datetime import datetime
def extract_birth_info(id_num):
# 假设id_num包含完整的日期信息,按照实际身份证格式进行解析
birth_str = id_num[-6:-4] + '-' + id_num[-4:-2] + '-' + id_num[-2:]
return datetime.strptime(birth_str, '%y-%m-%d')
df_students['出生日期'] = df_students['身份证号码'].apply(extract_birth_info)
```
现在`出生日期`列应该包含了学生的出生日期。
3. 分割籍贯为省、市、县:
```python
province_list, city_list, county_list = zip(*df_students['籍贯'].str.split(',', expand=True))
df_students['省份'] = province_list
df_students['城市'] = city_list
df_students['县区'] = county_list
```
注意这里假设籍贯是以逗号分隔的形式存储的,如果实际情况不同,可能需要调整分割字符。
4. 找出姓"李"的女同学:
```python
female_li_students = df_students[(df_students['姓名'].str.contains('李')) & (df_students['性别'] == '女')]
```
5. 找出星座是处女座的同学(假设生日是公历日期,星座计算依赖于生日):
```python
# 需要一个函数来根据生日计算星座,这里简化示例,假设已知星座转换规则
def get_star_zodiac(birth_date):
month, day = birth_date.month, birth_date.day
if 8 < month <= 22 and day >= 23:
return '处女座'
else:
return '其他星座'
df_students['星座'] = df_students['出生日期'].apply(get_star_zodiac)
# 现在你可以筛选出星座为处女座的学生
virgo_students = df_students[df_students['星座'] == '处女座']
```
阅读全文