pandas学习手记-自动填充

excel中最常用的功能就是自动填充,在pandas中如何实现呢?
首先先创建一个excel表格
在这里插入图片描述

首先读取文件
import pandas as pd

excel_path = r'E://temp/raw.xlsx'

df = pd.read_excel(excel_path)
print(df)

在这里插入图片描述
直接读取的话pandas会把所有空行都标为NaN,所以当要读取的文件的起始位置有不必要的空行的时候,应该在read_excel()方法中传入几个参数指定索引和有效数据列。

import pandas as pd

excel_path = r'E://temp/raw.xlsx'
# skiprows 指定索引行,usecols 指定有效数据从哪列到哪列 (C,D,E)或(C:E)
df = pd.read_excel(excel_path, skiprows=2, usecols='C:E')
print(df)

在这里插入图片描述
这样我们就能读取正确的表格了

填充数据

我们先填充id,id是一个等差数列,可以用一个for循环。

import pandas as pd

excel_path = r'E://temp/raw.xlsx'
# skiprows 指定索引行,usecols 指定有效数据从哪列到哪列 (C,D,E)或(C:E)
df = pd.read_excel(excel_path, skiprows=2, usecols='C:E')

for i in df.index:
    df['id'].at[i] = i+1
print(df)
# 查看id列的数据类型
print(type(df['id'][0]))

在这里插入图片描述
由结果可见,的确是为id列添加数据了,但是数据类型却不对,这是因为当没有数据的时候,默认的类型为float类型。我们可以在读取文件的时候预设值文件的类型,NaN如果直接设置为int类型的话会报错,所以都先设置为str类型。

import pandas as pd

excel_path = r'E://temp/raw.xlsx'
# dtype 传入一个字典,设置每一列的数据类型
df = pd.read_excel(excel_path, skiprows=2, usecols='C:E', dtype=({'id':str, 'name':str}))

for i in df.index:
    df['id'].at[i] = i+1
print(df)
# 查看id列的数据类型
print(type(df['id'][0]))

在这里插入图片描述
这样的方法修改excel里面的值是先通过for循环得到每一列,表格里面的每一列就是一个Series,通过Series的方法取得具体单元格再修改里面的值,也可以直接使用DataFrame的方法修改单元格的值.

for i in df.index:
    df.at[i, 'id'] = i + 1
函数填充

填充完了id,还有成绩这一列,我们用一个1到一百的随机数来生成每个人的成绩。

import pandas as pd
import random

excel_path = r'E://temp/raw.xlsx'
# dtype 传入一个字典,设置每一列的数据类型
df = pd.read_excel(excel_path, skiprows=2, usecols='C:E', dtype=({'id':str, 'name':str}))
# 将函数列生成一个列表
score_list = [random.randint(1, 100) for score in df['score']]
# 将成绩列的值付给score这个Series
df['score'] = score_list
print(df)

在这里插入图片描述

@快乐是一切

猜你喜欢

转载自blog.csdn.net/weixin_42600599/article/details/84954807
今日推荐