一、初识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