【发布时间】:2020-07-01 00:17:34
【问题描述】:
我是 Python Pandas 的新手,我正在努力解决问题。
我正在解决在我的 csv 中转换 dtype 值的问题。
我写了一个简单的例子来了解问题所在,但我看不到任何东西,我无法找到它为什么不起作用..请参见下文。
我现在有一个包含 3 列的 CSV 表 For the A and B the dtypes is Int64 for C it is object 如果我将变量设置为 str 它会将值从 int64 更改为 object。
我的代码是这样的:
import pandas as pd
data_Cisla = pd.read_csv("Cisla.csv", sep=";" , dtype=str)
print(data_Cisla.dtypes)
print(data_Cisla)
def cisla():
vstup = input("Input value ")
print(vstup, type(vstup))
print(data_Cisla.loc[vstup])
什么时候我也会使用 index_col="C" 并打印 cisla()
它正在工作。 程序会要求我从 C 列输入 - 所以我写了例如 text_2 它给了我输出 (C)text_2 (A) 2 (B) 20 ----> 这就是我要找的,但A 列作为 index_col。
但是如果我对 index_col A 使用相同的东西,当程序要求输入值时写入 20 它不起作用并给我错误..
我不明白的是,当我使用 data_Cisla.dtypes 打印每个步骤时,它会说我所有的列都是对象,那么有什么区别? 为什么它适用于 C 列而不适用于 A 列?
最终代码如下所示
import pandas as pd
data_Cisla = pd.read_csv("Cisla.csv", sep=";" , dtype=str, index_col="C")
def cisla():
vstup = input("Input value ")
print(data_Cisla.loc[vstup])
cisla()
谢谢你帮助我。
【问题讨论】:
标签: python pandas csv input type-conversion