python打卡DAY6

import seaborn as sns

import matplotlib.pyplot as plt

import pandas as pd

data=pd.read_csv(r'data.csv')

sns.boxplot(x=data['Annual Income'])

plt.figure(figsize=(6,4))

plt.tight_layout

plt.title('annual income photo')

plt.xlabel('annual income')

#plt.show

plt.rcParams['font.sans-serif']=['STHeiti']

plt.rcParams['axes.unicode_minus']=True

sns.boxplot(x=data['Annual Income'])

plt.tight_layout

plt.figure(figsize=(6,4))

plt.title('年收入箱线图')

plt.xlabel('年收入')

#plt.show

print(data.columns)

plt.figure(figsize=(6,4))

sns.histplot(data['Years in current job'])

plt.xticks(rotation=45,ha='right')

plt.tight_layout

plt.title('在当前工作年限直方图')

plt.xlabel('在当前工作年限')

plt.ylabel('员工数量')

#plt.show()

plt.figure(figsize=(6,4))

sns.boxplot(x='Credit Default',y='Annual Income',data=data)

plt.tight_layout

plt.title('Annual income vs.credit default')

plt.xlabel('credit default')

plt.ylabel('annual income')

#plt.show()

plt.figure(figsize=(6,4))

sns.histplot(x='Annual Income',hue='Credit Default',data=data,kde=True,element='step')

plt.tight_layout

plt.title('Annual Income vs.credit default')

plt.xlabel('annual income')

plt.ylabel('count')

#plt.show

plt.figure(figsize=(6,4))

sns.countplot(x='Number of Open Accounts',hue='Credit Default',data=data)

#解释:这里 x='Number of Open Account' 表示 data 这个 DataFrame 中的一列。data=data 明确告诉 seaborn 去这个 DataFrame 中找列。seaborn 内部会根据 x 和 hue 的列名在 data 中自动查找和处理。

plt.xticks(rotation=45,ha='right')

plt.tight_layout

plt.title('number of open account vs.credit default')

plt.xlabel('number of open account')

plt.ylabel('count')

plt.show

data['Open Accounts Group'] = pd.cut(data['Number of Open Accounts'],bins=[0,5,10,15,20,float('inf')],labels=['0-5','6-10','11-15','16-20','20+'])

plt.figure(figsize=(6,4))

sns.countplot(x='Open Accounts Group',hue='Credit Default',data=data)

plt.title('Number of Open Accounts (Grouped) vs.Credit Default')

plt.xlabel('number of open accounts group')

plt.ylabel('count')

plt.show()


 

import pandas as pd

data = pd.read_csv(r'data.csv')

print(data.info())

print(data.isnull().sum())

print(data.head())

for columns in data.columns:

if data[columns].dtype!='object':

data[columns].fillna(data[columns].mean(),inplace=True)

else:

data[columns].fillna(data[columns].mode()[0],inplace=True)

data=pd.get_dummies(data,drop_first=True)

discrete_list=[]

data2=pd.read_csv(r'data.csv')

for i in data.columns:

if i not in data2.columns:

discrete_list.append(i)

for i in discrete_list:

data[i]=data[i].astype(int)

print(data.head())

Python中实现打卡兑换礼物的功能,通常会涉及到以下几个步骤: 1. **数据结构设计**:创建一个数据库或数据结构来存储用户的打卡记录,比如字典或列表,其中每个元素包含用户ID、日期等信息。 ```python users_gifts = {} # 使用字典,key为用户ID,value为打卡记录 ``` 2. **添加打卡功能**:编写函数,当用户调用时,检查用户是否存在并更新打卡次数。例如,可以使用`datetime`库来记录每日打卡时间。 ```python import datetime def check_in(user_id): today = datetime.datetime.now().strftime("%Y-%m-%d") if user_id not in users_gifts: users_gifts[user_id] = {today: 1} else: if today not in users_gifts[user_id]: users_gifts[user_id][today] = 1 else: users_gifts[user_id][today] += 1 ``` 3. **条件判断与兑换规则**:设定一个规则,如连续7天打卡即可兑换一份礼物。可以遍历用户的打卡记录,检查是否符合条件。 ```python def can_exchange(user_id): user_history = users_gifts.get(user_id, {}) consecutive_days = {} for date, count in user_history.items(): if date - consecutive_days.get(date, '') <= datetime.timedelta(days=6): # 连续6天 consecutive_days[date] = count if len(consecutive_days) == 7: # 找到7连日 return True return False ``` 4. **兑换操作**:如果满足兑换条件,可以删除已达到兑换的打卡记录,并通知用户兑换成功。 ```python def redeem_gift(user_id): if can_exchange(user_id): for day, _ in list(users_gifts[user_id].items())[:7]: # 删除前7天的打卡记录 del users_gifts[user_id][day] print(f"恭喜用户{user_id},您的7天连续打卡已成功兑换礼物!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值