1.DataFrame介绍
DataFrame是由一组数据与一对索引(行索引和列索引)组成的表格型数据结构,与Excel的数据形式类似。
eg:
该数据结构和Excel的数据结构很像,既有行索引又有列索引,由行索引和列索引确定唯一值
2.DataFrame创建
import pandas as pd
方法:pd.DataFrame()
给方法传入不同的对象即可实现创建DataFrame对象
2.1 传入一个列表创建
2.1.1 只传入一个单一列表
s1 = pd.DataFrame(["a", "b", "c", "d"])
print(s1)
result:
0
0 a
1 b
2 c
3 d
此时该列表的值会显示成一列,且行和列都是从0开始的默认索引
2.1.2 传入一个嵌套列表
s2 = pd.DataFrame([["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"]])
print(s2)
result:
0 1
0 a A
1 b B
2 c C
3 d D
此时会根据列表数显示成多列数据,行、列索引同样是从0开始的默认索引
2.1.3 传入一个字典组成的列表
import pandas as pd
data = [{'x': 1, 'y': 2, 'z': 3}, {'x': 11, 'y': 22, 'z': 33}]
df = pd.DataFrame(data)
print(df)
result:
x y z
0 1 2 3
1 11 22 33
2.1.4 设置行索引
通过设置index参数自定义行索引
s2 = pd.DataFrame([["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"]], index=["一", "二", "三", "四"])
print(s2)
result:
0 1
一 a A
二 b B
三 c C
四 d D
2.1.5 设置列索引
通过设置columns参数自定义列索引
s4 = pd.DataFrame([["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"]], columns=["小写字母", "大写字母"])
print(s4)
result:
小写字母 大写字母
0 a A
1 b B
2 c C
3 d D
2.1.6 同时设置行索引和列索引
s5 = pd.DataFrame([["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"]], index=["一", "二", "三", "四"],
columns=["小写字母", "大写字母"])
print(s5)
result:
小写字母 大写字母
一 a A
二 b B
三 c C
四 d D
2.2 传入字典创建
2.2.1 普通字典
s6 = pd.DataFrame({'小写字母': ['a', 'b', 'c', 'd'], '大写字母': ['A', 'B', 'C', 'D']})
print(s6)
result:
小写字母 大写字母
0 a A
1 b B
2 c C
3 d D
此时字典的key相当于列索引,行索引使用从0开始的默认索引
2.2.2 由Series组成的字典
这是一种非常典型的构造数据的方法,字典里的一个键值对为一列数据,键为列名,值是一个Series
import pandas as pd
d = {'x': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'y': pd.Series([11, 22, 33], index=['a', 'b', 'c'])}
df = pd.DataFrame(d)
print(df)
result:
x y
a 1 11
b 2 22
c 3 33
2.2.3 设置行索引
通过设置index参数自定义行索引
s6 = pd.DataFrame({'小写字母': ['a', 'b', 'c', 'd'], '大写字母': ['A', 'B', 'C', 'D']},
index=["一", "二", "三", "四"])
print(s6)
result:
小写字母 大写字母
一 a A
二 b B
三 c C
四 d D
2.3 传入Series创建
import pandas as pd
s = pd.Series(['a', 'b', 'c', 'd', 'e'])
df = pd.DataFrame(s)
print(df)
result:
0
0 a
1 b
2 c
3 d
4 e
2.4 其他方法
2.4.1 通过字典生成
import pandas as pd
data = {'小写字母': ['a', 'b', 'c', 'd'], '大写字母': ['A', 'B', 'C', 'D']}
df = pd.DataFrame.from_dict(data)
print(df)
result:
小写字母 大写字母
0 a A
1 b B
2 c C
3 d D
2.4.2 从列表、元组和ndarray生成
import pandas as pd
data = [['a', 'b', 'c', 'd'], ['A', 'B', 'C', 'D']]
df = pd.DataFrame.from_records(data)
print(df)
result:
0 1 2 3
0 a b c d
1 A B C D
3.获取索引
3.1 获取行索引
通过index方法获取DataFrame的行索引
s1 = pd.DataFrame([["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"]], index=["一", "二", "三", "四"],
columns=["小写字母", "大写字母"])
print(s1.index)
result:
Index(['一', '二', '三', '四'], dtype='object')
3.2 获取列索引
通过columns方法获取DataFrame的列索引
s1 = pd.DataFrame([["a", "A"], ["b", "B"], ["c", "C"], ["d", "D"]], index=["一", "二", "三", "四"],
columns=["小写字母", "大写字母"])
print(s1.columns)
result:
Index(['小写字母', '大写字母'], dtype='object')