【发布时间】:2020-05-24 22:35:06
【问题描述】:
我正在编写胶水代码连接使用 Pandas DataFrames 和 Numpy 数组的库,并且在确定最初从 Pandas DataFrames 创建的 Numpy 数组中哪些列是“对象/字符串”时遇到了一些问题。
import pandas as pd
test_df = pd.DataFrame({"a": [1, 2, 3], "b": ["one", "two", "three"]})
test_arr = test.values
test_df2 = pd.DataFrame(test_arr)
test_df.dtypes
# a int64, b object
test_df2.dtypes
# 0 object, 1 object
我希望 test_df2.dtypes 是 int64 & object 而不是两个 object。
如何使用 numpy 数组 'test_arr' 中的信息找到原始 Pandas DataFrame 列的数据类型?
我可以使用以下方法实现所需的行为,但想知道是否有更高效/优雅的解决方案?我也担心这种方法可能很脆弱:
test_df3 = pd.DataFrame(test_arr).apply(
lambda x: pd.to_numeric(x, errors="ignore"), axis=1
)
编辑 - 一些使用 test_df 数据类型的解决方案。我无权访问它,也无法控制 test_arr 的创建方式。我想仅使用 test_arr 来查找 test_df 的数据类型。
【问题讨论】:
标签: arrays pandas numpy dataframe types