3 回答
TA贡献1802条经验 获得超5个赞
values
In [1]: df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c']); df A B a 1 4b 2 5c 3 6In [2]: df.index.valuesOut[2]: array(['a', 'b', 'c'], dtype=object)
In [3]: df['A'].valuesOut[3]: Out[16]: array([1, 2, 3])
tolist
:
In [4]: df.index.tolist()Out[4]: ['a', 'b']
TA贡献1895条经验 获得超3个赞
df.index
df.index.tolist()
df['col'].tolist()
TA贡献1982条经验 获得超2个赞
不建议使用 .values
赞成这些方法!
Index
, Series
DataFrame
to_numpy()
.array
我们没有删除或反对 Series.values
或 DataFrame.values
,但是 我们强烈推荐和使用 .array
或 .to_numpy()
相反。
df.index.to_numpy()# array(['a', 'b'], dtype=object)df['A'].to_numpy()# array([1, 4])
v = df.index.to_numpy()v[0] = -1df A B-1 1 2b 4 5
to_numpy(copy=True
);
v = df.index.to_numpy(copy=True)v[-1] = -123df A B a 1 2b 4 5
.array
array
ExtensionArray
pd.__version__# '0.24.0rc1'# Setup.df = pd.DataFrame([[1, 2], [4, 5]], columns=['A', 'B'], index=['a', 'b'])df A B a 1 2b 4 5
df.index.array # <PandasArray># ['a', 'b']# Length: 2, dtype: objectdf['A'].array# <PandasArray># [1, 4]# Length: 2, dtype: int64
list
:
list(df.index.array)# ['a', 'b']list(df['A'].array)# [1, 4]
.tolist()
:
df.index.tolist()# ['a', 'b']df['A'].tolist()# [1, 4]
为 Series
和 Index
由普通NumPy数组支持的ES, Series.array
将返回一个新的 arrays.PandasArray
,它是一个薄的(无副本)包装器。 numpy.ndarray
.arrays.PandasArray
它本身并不特别有用,但它确实提供了与在熊猫或第三方库中定义的任何扩展数组相同的接口。
.array
现有 ExtensionArray
支持索引/系列,或 如果有一个NumPy数组支持该系列,则将生成一个新的 ExtensionArray
对象是作为底层数组上的一个薄包装器创建的。
添加两种新方法的理由
[.]带着 .values
还不清楚返回的值是实际数组,还是它的某些转换,还是熊猫自定义数组之一(如 Categorical
)。例如,用 PeriodIndex
,.values
生成一个新的 ndarray
每次的句点对象。[.]
.values
添加回答
举报