开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情
数据增加
列数据
一般添加列数据有两种方式:赋值与loc函数
举例:
import pandas as pd
data = [[75, 56, 80], [56, 45, 50], [60, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(f"DataFrame:\n{df}")
df["物理"] = [60,80,90]
print(f"直接赋值一个不在DataFrame中的值进行添加:\n{df}")
df.loc[:,'化学']=[76,83,95]
print(f"使用loc函数进行添加:\n{df}")
结果:
行数据
可以使用loc函数和append函数,这两种主要是用于index有设置类型。
举例:
data = [[75, 56, 80], [56, 45, 50], [60, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df_1 = pd.DataFrame(data=data, index=index, columns=columns)
df_1.loc["陈六"] = [50, 60, 90]
print(f"使用loc函数添加行数据:\n{df_1}")
df_2 = pd.DataFrame(data=[[75, 56, 80], [75, 56, 80]], index=['杨七', '刘八'], columns=['数学', '语文', '英语'])
df_1 = df_1.append(df_2)
print(f"apped函数将columns属性一致的两个DataFrame合并:\n{df_1}")
结果:
数据修改
修改列标题
修改列标题主要使用对columns属性的赋值和rename()函数。
举例
data = [[75, 56, 80], [56, 45, 50], [60, 67, 67]]
columns = ['数学', '语文', '英语']
df_1 = pd.DataFrame(data=data, columns=columns)
print(f"DataFrame:\n{df_1}")
df_1.columns = ["法语", "日语", "计算机基础"]
print(f"直接进行对columns属性赋值\n{df_1}")
df_1.rename(columns={"法语": "French", "日语": "Japanese", "计算机基础": "Basic Computer"}, inplace=True)
# inplace一定要设置为True,否则不会直接更改原df的值,需要另外赋值
print(f"DataFrame的函数rename()进行修改\n{df_1}")
结果:
修改行标题
修改列标题主要使用对index属性的赋值和rename()函数。
举例:
data = [[75, 56, 80], [56, 45, 50], [60, 67, 67]]
columns = ['数学', '语文', '英语']
df_1 = pd.DataFrame(data=data, columns=columns)
print(f"DataFrame:\n{df_1}")
df_1.index=['张时','李阿','王明']
print(f"直接进行对index属性赋值\n{df_1}")
df_1.rename({'张时':'zhangshi','李阿':'lia','王明':'wangming'},inplace=True,axis=0)
print(f"DataFrame的函数rename()进行修改\n{df_1}")
结果:
修改数据
使用loc和iloc函数
举例:
data=[[75,56,80],[56,45,50],[60,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df_1=pd.DataFrame(data=data,index=index,columns=columns)
print(f"DataFrame:\n{df_1}")
df_1.loc['张三']=[100,100,90]#修改一整行
print (f'修改一整行数据\n{df_1}')
df_1.iloc[0,:]=[90,90,90]#修改第0行的所有列
print(f"修改一整行数据\n{df_1}")
df_1.iloc[1,1]=78#修改第0行的所有列
print(f'修改单个数据\n{df_1}')
结果: