DataFrame

DataFrame是一个表格型的数据类型,每列值类型可以不同
DataFrame既有行索引index、又有列索引coulem
DataFrame常用二维数据表达,但也可以用多维数据表达

DataFrame的创建

  • 基于Series创建​ 每列的index与columns的数量可以不相同的
    如果没有为值,会根据行列索引自动补齐
import pandas as pd

dt = {
'one': pd.Series([7, 8, 9], index=['d', 'b', 'e']),
'two': pd.Series([1, 2, 3, 4], index=['a', 'c', 'd', 'b'])
}
df = pd.DataFrame(dt)
print(df)

one two
a NaN 1.0
b 8.0 4.0
c NaN 2.0
d 7.0 3.0
e 9.0 NaN

根据索引查找,如果查不到,自动补齐

df = pd.DataFrame(dt, index=['a', 'b', 'c'], columns=['two', 'three'])

print(df)

two three
a 1 NaN
b 4 NaN
c 2 NaN
  • 通过列表类型的字典创建​ 每列的index与columns的数量相同的
dt = {
'one': [1, 2, 3, 4],
'two': [9, 8, 7, 6]
}
df = pd.DataFrame(dt, index=['a', 'b', 'c', 'd'])
print(df)

one two
a 1 9
b 2 8
c 3 7
d 4 6
dt = {
'城市': ['北京', '上海', '广州', '深圳', '珠海'],
'环比': [100, 140, 173, 157, 137],
'同比': [70, 87, 55, 69, 72],
'定基': [9, 8, 7, 6, 7]
}
df = pd.DataFrame(dt, index=['c1', 'c2', 'c3', 'c4', 'c5'])
print(df)

城市 环比 同比 定基
c1 北京 100 70 9
c2 上海 140 87 8
c3 广州 173 55 7
c4 深圳 157 69 6
c5 珠海 137 72 7

取索index

print(df.index)

Index(['c1', 'c2', 'c3', 'c4', 'c5'], dtype='object')

columns

print(df.columns)

Index(['城市', '环比', '同比', '定基'], dtype='object')

values

print(df.values)

[['北京' 100 70 9]
['上海' 140 87 8]
['广州' 173 55 7]
['深圳' 157 69 6]
['珠海' 137 72 7]]

获取其中一列 df[column]

print(df['同比'])

c1 70
c2 87
c3 55
c4 69
c5 72
Name: 同比, dtype: int64

获取其中一行 df.loc['index'])

print(df.loc['c2'])

城市 上海
环比 140
同比 87
定基 8
Name: c2, dtype: object

获取其中某行某列具体值 df.df[column]['index'])

print(df['同比']['c2'])

87