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 有以下几个缺点:

  1. 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 数组,其代价是需要复制、并强制转换数据的值。

  2. DataFrame 含多种数据类型时,DataFrame.values (opens new window)会复制数据,并将数据的值强制转换同一种数据类型,这是一种代价较高的操作。DataFrame.to_numpy() (opens new window)则返回 NumPy 数组,这种方式更清晰,也不会把 DataFrame 里的数据都当作一种类型

posted @ 2021-09-24 19:45  不详·Christina  阅读(23)  评论(0)    收藏  举报