pandas操作excel表格

本文介绍了如何使用Python的pandas库读取Excel文件,并展示了通过iloc和loc方法进行数据查询,包括按行数、列名以及条件查询数据。同时,文章还涵盖了频数、频率、均值、标准差、方差等统计计算,以及F检验和t检验的基本应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas

pandas操作excel表格常用方法

导入数据

import pandas as pd

excel_path = '调查问卷(1).xlsx'

df = pd.read_excel(excel_path)

查询数据方式

1.行数,列数

#excel第一行 称为 表头,用来当作索引查找,不算表的正文

#excel中的第二行,第一列
d1 = df.iloc[0,0]

#excel中的第6行,第6列
d2 = df.iloc[4,5]

#excel中的第6列
d3 = df.iloc[:,5]

#excel中的第3列到第4列
d4 = df.iloc[:,2:4]

#excel中的第2行
d5 = df.iloc[0]

#excel中的第3行到第4行
d6 = df.iloc[1:3,:]
print(d6)


### 2.行数,列名


```python
#excel中的第二行,第"3、我的性别"列
d1 = df.loc[0,'3、我的性别']

#excel中的第"3、我的性别"列
d2 = df.loc[:,'3、我的性别']

#excel中的第2行到第6行,第"3、我的性别"列
d3 = df.loc[0:4,'3、我的性别']

#excel中的第2行到第6行,第"3、我的性别","6、我的受教育程度"列
d4 = df.loc[0:4,['3、我的性别','6、我的受教育程度']]
print(d4)


### 3.条件查询


```python
#第“6、我的受教育程度“列为1 的第“10、我有几个孩子”列
d1 = df.loc[df['6、我的受教育程度']==1,'10、我有几个孩子']

d2 = df.loc[df['2、我的所在地是']>=1,['6、我的受教育程度','10、我有几个孩子']]

#对应第8列大于等于1的 第'6、我的受教育程度','10、我有几个孩子'两列
d3 = df.loc[df.iloc[:,7]>=1,['6、我的受教育程度','10、我有几个孩子']]
print(d3)

常见计算

计算前,先用前面的方法查询到对应数据

频数&频率

value_counts() -> 频数

value_counts(normalize=True) -> 频率

# 例1
data = df.loc[0:203,'3、我的性别']
#频数
d1 = data.value_counts()
print(d1)
#频率
d1 = data.value_counts(normalize=True)
print(d1)

# 例2
data = df.loc[0:203,'10、我有几个孩子']
#频数
d2 = data.value_counts()
print(d2)
#频率
d2 = data.value_counts(normalize=True)
print(d2)

均值&标准差&方差

mean() -> 均值

std() -> 标准差

var() -> 方差

# 例1
#受教育程度为1对应的有几个孩子
data = df.loc[df['6、我的受教育程度']==1,'10、我有几个孩子']
# 均值
m = data.mean()
# 标准差
s = data.std()
# 方差
a = data.var()
print(m,s,a)

F检验&t检验

from scipy.stats import ttest_rel, f


d1 = pd.Series([44.2, 36.1, 46.5, 40.7, 61.6, 55.4, 59.9, 55.2, 65.5, 58.5])
d2 = pd.Series([44.1, 35.9, 45.6, 39.5, 60.1, 55.1, 59.9, 54.2, 65.6, 58.2])


# F检验
# 统计量F
F = d1.var()/d2.var()
# F检验的p值
F_p = 1 - 2 * abs(0.5 - f.cdf(F, len(d1)-1, len(d2)-1))
print(F,F_p)
# t检验
t = ttest_rel(d1, d2)
print(t)
# 统计量
print(t.statistic)
# p值
print(t.pvalue)
0.9850606529349507 0.9824793107664763
TtestResult(statistic=3.048475214454681, pvalue=0.013826970451693616, df=9)
3.048475214454681
0.013826970451693616
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值