excle只有表头,没有数据:
import pandas as pd
import random
sheet_name = "Sheet1"
excle_file = r'C:\Users\user\Desktop\excle_data.xlsx'
data = pd.DataFrame(pd.read_excel(excle_file,sheet_name=sheet_name))
# 给每行填充值:
for i in range(1,8):
data.loc[i] = ['mb'+ str(i),'mc'+ str(i),round(random.uniform(1,10),2)]
# 将修改后的值同步到excle文件
pd.DataFrame(data).to_excel(excle_file,sheet_name='Sheet1', index=False, header=True)
填充值之后的excle:
各种情况的数据如下:
# 整个表数据
print(data)
商品编码 商品名称 商品原价(单位:元)
0 mb0 mc0 8.67
1 mb1 mc1 2.17
2 mb2 mc2 6.82
3 mb3 mc3 3.08
4 mb4 mc4 5.40
5 mb5 mc5 6.37
6 mb6 mc6 4.80
7 mb7 mc7 9.43
# 获取所有列
print(list(data))
['商品编码', '商品名称', '商品原价(单位:元)']
# 所有列的值
print(data.values)
[['mb0' 'mc0' 8.67]
['mb1' 'mc1' 2.17]
['mb2' 'mc2' 6.82]
['mb3' 'mc3' 3.08]
['mb4' 'mc4' 5.4]
['mb5' 'mc5' 6.37]
['mb6' 'mc6' 4.8]
['mb7' 'mc7' 9.43]]
# 所有数据的行数
print(len(data))
8
# 所有的字段数
print(len(list(data)))
3
# 第一列的名字
print(list(data)[0])
商品编码
# 分别打印所有列的名字
for i in range(len(list(data))):
print(list(data)[i])
商品编码
商品名称
商品原价(单位:元)
# 用列的名字返回列的所有信息
print(data['商品编码'])
0 mb0
1 mb1
2 mb2
3 mb3
4 mb4
5 mb5
6 mb6
7 mb7
Name: 商品编码, dtype: object
print(data['商品名称'])
0 mc0
1 mc1
2 mc2
3 mc3
4 mc4
5 mc5
6 mc6
7 mc7
Name: 商品名称, dtype: object
print(data['商品原价(单位:元)'])
0 8.67
1 2.17
2 6.82
3 3.08
4 5.40
5 6.37
6 4.80
7 9.43
Name: 商品原价(单位:元), dtype: float64
# 删除行的数据
data.drop(list(range(5)),inplace=True) # 直接修改data
# data.drop(index=[0, 1]) # inplace 默认为False 没有修改data 需要重新赋值
# 将修改后的值同步到excle文件
pd.DataFrame(data).to_excel(excle_file,sheet_name='Sheet1', index=False, header=True)
print(data)
Name: 商品原价(单位:元), dtype: float64
商品编码 商品名称 商品原价(单位:元)
5 mb5 mc5 8.25
6 mb6 mc6 3.20
7 mb7 mc7 3.88
删除行之后的excle:
# 获取第二行第二列的值
print(data.loc[1][1])
mc6
# 获取第二行列的名字为"商品名称"的值
print(data.loc[1]['商品名称'])
mc6