#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : 三十二画生JH
# @Contact : fjhstudent@163.com
# @Software: PyCharm
# @Time : 2024/4/21 21:49
# @Site : 网址
# @File : t_test.py
# @Version : # ---功能描述
"""
对实验数据做独立样本t检验
"""
# 正文import pandas as pd
import seaborn as sns
from scipy import stats
import matplotlib.pyplot as plt# Load data from the Excel file
excel_file = "t_test.xlsx" # Replace with the path to your Excel file
data = pd.read_excel(excel_file)# Convert all words to lowercase
data.columns = data.columns.str.lower()# Convert gender variable to lowercase
data['gender'] = data['gender'].map({1: 'male', 2: 'female'})# Perform independent samples t-test
male_money = data[data['gender'] == 'male']['money']
female_money = data[data['gender'] == 'female']['money']t_statistic, p_value = stats.ttest_ind(male_money, female_money)# Create a table for the t-test results
result_table = pd.DataFrame({'gender': ['male', 'female'],'mean': [male_money.mean(), female_money.mean()],'standard deviation': [male_money.std(), female_money.std()],'sample size': [len(male_money), len(female_money)]
})# Add t-test results to the table
result_table['t-statistic'] = t_statistic
result_table['p-value'] = p_value# Print the t-test results table
print("Independent Samples t-test Results:")
print(result_table)# Create a visually appealing bar comparison chart
plt.figure(figsize=(8, 6))
sns.set(style="whitegrid")
sns.barplot(x='gender', y='money', data=data, ci=None, palette="Set2")
plt.title('Comparison of Money by Gender', fontsize=16)
plt.xlabel('Gender', fontsize=14)
plt.ylabel('Money', fontsize=14)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.tight_layout()# Save the chart as a PNG image
plt.savefig('comparison_chart.png')# Show the chart
plt.show()