dict = {'a': 0, 'b': 1, 'c': 2}
df = pd.Series(dict)
print(df)
print(df[0])
print(df['a'])
a 0
b 1
c 2
dtype: int64
0
0
想要显示带索引(标签)的某一行数据时,需要内部再嵌套一个[] 。
print(df[[0]])
print(df[['a']])
a 0
dtype: int64
a 0
dtype: int64
截取字符
print(df[:2])
a 0
b 1
dtype: int64
类似于字典,判断标签是否存在。
print('c' in df)
True
2、1、1、1 选择一列:
(1)未使用函数
dict = {'one': {'a': 0, 'b': 1, 'c': 2}, 'two': {'a': 4, 'b': 9, 'c': 3}}
df = pd.DataFrame(dict)
print(df['one'])
a 0
b 1
c 2
Name: one, dtype: int64
与Series类似,想要显示带索引的数据时,需要内部再嵌套一个[]。
print(df[['one']])
one
a 0
b 1
c 2
(2)使用函数
df.loc[]一般适用于根据标签选择行的情况,但也可以写成以下形式选择列。
print(df.loc[:, ['one']])
one
a 0
b 1
c 2
2、1、1、2 选择不止一列
(1)未使用函数
print(df[['one', 'two']])
one two
a 0 4
b 1 9
c 2 3
(2)使用函数
调用df.loc[]:
print(df.loc[:, ['one', 'two']])
one two
a 0 4
b 1 9
c 2 3
2、1、2、1 选择一行
直接写df['a']会报错,正确且唯一的方法是调用df.loc[],但要注意以下两种方式的显示结果是不同的,嵌套[]可以显示索引。
print(df.loc['a'])
one 0
two 4
Name: a, dtype: int64
print(df.loc[['a']])
one two
a 0 4
2、1、2、2 选择不止一行
print(df.loc[['a', 'b']])
one two
a 0 4
b 1 9
(1)选择某一范围时
先行后列
print(df.loc[['a', 'b'], ['one', 'two']])
one two
a 0 4
b 1 9
(2)选择某一具体值时
先行后列
print(df.loc[['a'], ['one']])
one
a 0
也可写成以下形式 ,但只输出值。
print(df.loc['a', 'one'])
0
2、2、1、1 选择一行/多行
(1)未使用函数
直接写df[0]会报错,正确写法是df[:1]。
print(df[:1])
one two
a 0 4
与Series类似,切片可以灵活的截取不同行。
(2)使用函数
调用df.iloc[],但要注意以下两种方式的显示结果是不同的,切片可以显示索引。
print(df.iloc[0])
one 0
two 4
Name: a, dtype: int64
print(df.iloc[0:1])
one two
a 0 4
2、2、2、1 选择一列/多列
df.iloc[]一般适用于根据下标选择行的情况,但也可以写成以下形式选择列。
print(df.iloc[:, 0:2])
one
a 0
b 1
c 2
2、2、3、1 选择某一范围时
(1)未使用函数
print(df[:2][['one', 'two']])
one two
a 0 4
b 1 9
(2)使用函数
调用df.iloc[]:
print(df.iloc[0:2, 0:2])
one two
a 0 4
b 1 9
2、2、3、2 选择某一值时
(1)未使用函数
print(df[1:2][['one']])
one
b 1
(2)使用函数
print(df.iloc[1:2, 1:2])
two
b 9
支持numpy通用数据类型,include和exclude用于实现“提取这些数据类型的列”或“提取不是这些数据类型的列”。
dft = pd.DataFrame({'A': np.random.rand(3),
'B': 1,
'C': 'foo',
'D': pd.Timestamp('20010102'),
'E': pd.Series([1.0] * 3).astype('float32'),
'F': False,
'G': pd.Series([1] * 3, dtype='int8')})
print(dft.select_dtypes([bool]))
A B C D E F G
0 0.079111 1 foo 2001-01-02 1.0 False 1
1 0.618861 1 foo 2001-01-02 1.0 False 1
2 0.346071 1 foo 2001-01-02 1.0 False 1
F
0 False
1 False
2 False
print(dft.select_dtypes(include=['bool', 'number'], exclude=['float32']))
A B F G
0 0.054771 1 False 1
1 0.722049 1 False 1
2 0.256301 1 False 1
其中通用数据类型如下:
[numpy.generic,
[[numpy.number,
[[numpy.integer,
[[numpy.signedinteger,
[numpy.int8,
numpy.int16,
numpy.int32,
numpy.int64,
numpy.int64,
numpy.timedelta64]],
[numpy.unsignedinteger,
[numpy.uint8,
numpy.uint16,
numpy.uint32,
numpy.uint64,
numpy.uint64]]]],
[numpy.inexact,
[[numpy.floating,
[numpy.float16, numpy.float32, numpy.float64, numpy.float128]],
[numpy.complexfloating,
[numpy.complex64, numpy.complex128, numpy.complex256]]]]]],
[numpy.flexible,
[[numpy.character, [numpy.bytes_, numpy.str_]],
[numpy.void, [numpy.record]]]],
numpy.bool_,
numpy.datetime64,
numpy.object_]]