gpt4 book ai didi

python - Pandas 从具有未知列名的给定数据类型的 csv 中读取列

转载 作者:行者123 更新时间:2023-12-05 03:21:32 25 4
gpt4 key购买 nike

我正在尝试从 Excel 文件导入数据框 (df_model)。 excel 文件中此数据框的第一列有整数 1、2、3、4、5,我想将它们读取为整数而不是小数或浮点值。但是每当我尝试通过 pandas 读取它们时,它会将第一列中的值转换为十进制,如 1.0、2.0、3.0、4.0、5.0。然而,其余列中的值仍然是我想要的方式。这是 pandas 读取的数据框。

    Std S_Ultra S_Classic  ... SMV34_Ultra SMV34_Classic SMV34_Ultra for Flow
0 1.0 1A 1A ... 1.0 1.0 2.0
1 2.0 2A 2A ... 2.0 2.0 2 SP=5
2 3.0 3A 3A ... 2 SP=5 2 SP=5 3.0
3 4.0 4A 4A ... 3.0 3.0 3 SP=5
4 5.0 5A 5A ... 3 SP=5 3 SP=5 NaN
.. ... ... ... ... ... ... ...
100 NaN NaN NaN ... NaN NaN NaN

有没有可能pandas默认不把第一列转成十进制值?

最佳答案

是的,您可以在使用 pandas 阅读时指定列的类型 read_csv

df = pd.read_csv('filename.csv', dtype={'Std': 'Int32'})

pandas 会将缺失值设置为 <NA>

编辑:正如评论中所讨论的,列的名称事先是未知的,但是这里已知的是第一列或第 n 列将包含 int, float, string数据

在读取数据时,我们可以指定列号和数据类型。该列将以您指定的数据类型读取。我们将跳过标题行,单独读取并稍后分配标题。

0这里是第一个列号

df = pd.read_csv(r'filename.csv', skiprows = 1,  dtype={'0': 'int'}, header = None)
headers = pd.read_csv(r"filename.csv", nrows=0).columns
df.columns = headers

上面的代码会给你预期的输出

EDIT2:如果不对 csv 进行一次遍历以检查哪些列是 integer, float and string,就不可能事先知道。 .如果您不想让 pandas 读取 int,则需要事先获得此信息。列为 object数据类型。并且可以说,如果您要通过一次传递来获取此信息,为什么不在只读后转换列。无论哪种方式,您都必须通过一次或需要知道所有列号将包含什么data type。 .

关于python - Pandas 从具有未知列名的给定数据类型的 csv 中读取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72947762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com