作者:Cindere丷lla_茹满 | 来源:互联网 | 2023-01-20 15:29
一、初识DataFramedataFrame是一个带有索引的二维数据结构,每列可以有自己的名字,并且可以有不同的数据类型。你可以把它想象成一个excel表格或者数据库中的一张表Da
一、初识DataFrame
dataFrame 是一个带有索引的二维数据结构,每列可以有自己的名字,并且可以有不同的数据类型。你可以把它想象成一个 excel 表格或者数据库中的一张表DataFrame是最常用的 Pandas 对象。
二、数据框的创建
1.字典套列表方式创建
index = pd.Index(data=["Tom", "Bob", "Mary", "James"], name="name")
data = {
"age": [18, 30, 25, 40],
"city": ["BeiJing", "ShangHai", "GuangZhou", "ShenZhen"]
}
user_info = pd.DataFrame(data=data, index=index)
user_info
Out[35]:
age city
name
Tom 18 BeiJing
Bob 30 ShangHai
Mary 25 GuangZhou
James 40 ShenZhen
2. 列表套字典方式创建
data = [{'name':'xiaohong','age':23,'tel':10086},{'name':'xiaogang','age':12},{'name':'xiaozhang','tel':10010}]
user_info = pd.DataFrame(data=data)
user_info
Out[36]:
age name tel
0 23.0 xiaohong 10086.0
1 12.0 xiaogang NaN
2 NaN xiaozhang 10010.0
3.数组方式创建
data = [[18, "BeiJing"],
[30, "ShangHai"],
[25, "GuangZhou"],
[40, "ShenZhen"]]
columns = ["age", "city"]
user_info = pd.DataFrame(data=data, index=index, columns=columns)
user_info
Out[37]:
age city
name
Tom 18 BeiJing
Bob 30 ShangHai
Mary 25 GuangZhou
James 40 ShenZhen
4.from_dict方式
result = {'name': 'zhangyafei','age': 24, 'city':'shanxi','weather':'sunny','date':'2019-3-11'}
data = pd.DataFrame.from_dict(result,orient='index').T
data
Out[44]:
name age city weather date
0 zhangyafei 24 shanxi sunny 2019-3-11
二、数据框的增删改查
数据准备
index = pd.Index(data=["Tom", "Bob", "Mary", "James"], name="name")
data = {
"age": [18, 30, 25, 40],
"city": ["BeiJing", "ShangHai", "GuangZhou", "ShenZhen"]
}
df = pd.DataFrame(data=data, index=index)
df
Out[45]:
age city
name
Tom 18 BeiJing
Bob 30 ShangHai
Mary 25 GuangZhou
James 40 ShenZhen
-
增加
#增加行 注意:这种方法,效率非常低,不应该用于遍历中
df.loc[len(df)]=[23,'shanxi']
#增加列
df['sex'] = [1,1,1,0]
df.assign(age_add_One= df.age + 1)
df.loc[len(df)] = [23, 'shanxi']
df
Out[47]:
age city
name
Tom 18 BeiJing
Bob 30 ShangHai
Mary 25 GuangZhou
James 40 ShenZhen
4 23 shanxi
df['sex'] = [1,1,1,0,1]
df
Out[49]:
age city sex
name
Tom 18 BeiJing 1
Bob 30 ShangHai 1
Mary 25 GuangZhou 1
James 40 ShenZhen 0
4 23 shanxi 1
df.assign(age_add_one = user_info["age"] + 1)
Out[79]:
age city age_add_one
name
Tom 18 BeiJing 19
Bob 30 ShangHai 31
Mary 25 GuangZhou 26
James 40 ShenZhen 41
增加行列