看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
values
属性用于返回 DataFrame 或 Series 中的值,作为一个 NumPy 数组。它没有参数,返回的数据类型取决于 DataFrame 或 Series 中的值。对于 DataFrame,如果列中的数据类型相同,则返回二维 NumPy 数组。如果列中的数据类型不同,则返回带有适当数据类型的数组。
DataFrame.values
Series.values
我们建议改用 DataFrame.to_numpy()
。
values
属性将数据转换为 NumPy 数组。values
属性。dtype将是一个最小公分母 (Lowest common denominator) dtype(隐式上转换);也就是说,如果混合使用dtype(即使是数字类型),将选择一个能容纳所有类型的dtype。如果您不处理这些块,请小心使用。
例如,如果dtype是float16和float32,则dtype将被上播到float32。如果dtype是int32和uint8,dtype将被上变频为int32。根据numpy.find_common_type() 约定,混合int64和uint64将得到float64数据类型。
所有列都是相同类型(例如int64)的DataFrame会产生相同类型的数组。
df = pd.DataFrame({'age': [ 3, 29],
'height': [94, 170],
'weight': [31, 115]})
df
'''
age height weight
0 3 94 31
1 29 170 115
'''
df.dtypes
'''
age int64
height int64
weight int64
dtype: object
'''
df.values
'''
array([[ 3, 94, 31],
[ 29, 170, 115]])
'''
具有混合类型列(例如str/object、int64、float32)的DataFrame会产生容纳这些混合类型(例如object)的最广泛类型的ndarray。
df2 = pd.DataFrame([('parrot', 24.0, 'second'),
('lion', 80.5, 1),
('monkey', np.nan, None)],
columns=('name', 'max_speed', 'rank'))
df2.dtypes
'''
name object
max_speed float64
rank object
dtype: object
'''
df2.values
'''
array([['parrot', 24.0, 'second'],
['lion', 80.5, 1],
['monkey', nan, None]], dtype=object)
'''
Series:
pd.Series([1, 2, 3]).values
# array([1, 2, 3])
pd.Series(list('aabc')).values
# array(['a', 'a', 'b', 'c'], dtype=object)
pd.Series(list('aabc')).astype('category').values
'''
['a', 'a', 'b', 'c']
Categories (3, object): ['a', 'b', 'c']
'''
# 时区感知的日期时间数据转换为UTC:
pd.Series(pd.date_range('20130101', periods=3,
tz='US/Eastern')).values
'''
array(['2013-01-01T05:00:00.000000000',
'2013-01-02T05:00:00.000000000',
'2013-01-03T05:00:00.000000000'], dtype='datetime64[ns]')
'''
pandas.Index:
idx = pd.Index([1, 2, 3])
idx
# Index([1, 2, 3], dtype='int64')
idx.values
# array([1, 2, 3])
pandas.IntervalIndex:
idx = pd.interval_range(start=0, end=5)
idx.values
'''
<IntervalArray>
[(0, 1], (1, 2], (2, 3], (3, 4], (4, 5]]
Length: 5, dtype: interval[int64, right]
'''
通过这些示例,我们可以看到 values
属性可以方便地将 DataFrame 或 Series 转换为 NumPy 数组,从而在需要进行进一步的数据处理或分析时提高性能。
更新时间:Aug. 3, 2024, 5:11 p.m. 标签:pandas python values