9月24日总结
DataFrame 为同构型数据时,Pandas 直接修改原始 ndarray,所做修改会直接反应在数据结构里。对于异质型数据,即 DataFrame 列的数据类型不一样时,就不是这种操作模式了。与轴标签不同,不能为值的属性赋值。
注意
处理异质型数据时,输出结果 ndarray 的数据类型适用于涉及的各类数据。若 DataFrame 里包含字符串,输出结果的数据类型就是 object。要是只有浮点数或整数,则输出结果的数据类型是浮点数。
以前,Pandas 推荐用 Series.values (opens new window)或 DataFrame.values (opens new window)从 Series 或 DataFrame 里提取数据。旧有代码库或在线教程里仍在用这种操作,但 Pandas 已改进了此功能,现在,推荐用 .array 或 to_numpy 提取数据,别再用 .values 了。.values 有以下几个缺点:
-
Series 含扩展类型 (opens new window)时,Series.values (opens new window)无法判断到底是该返回 NumPy
array,还是返回ExtensionArray。而Series.array(opens new window)则只返回ExtensionArray(opens new window),且不会复制数据。Series.to_numpy()(opens new window)则返回 NumPy 数组,其代价是需要复制、并强制转换数据的值。 -
DataFrame 含多种数据类型时,
DataFrame.values(opens new window)会复制数据,并将数据的值强制转换同一种数据类型,这是一种代价较高的操作。DataFrame.to_numpy()(opens new window)则返回 NumPy 数组,这种方式更清晰,也不会把 DataFrame 里的数据都当作一种类型

浙公网安备 33010602011771号