【发布时间】:2020-12-20 05:23:14
【问题描述】:
我很难理解为什么在将int64 转换为str 后会得到\n1 和\n2 输出。
从 2014 年到0 2014\n1 2015\n2 2015\n3 2016。
这就是我所做的:df.Year = str(df.Year)
之前:
之后:
特写:
【问题讨论】:
我很难理解为什么在将int64 转换为str 后会得到\n1 和\n2 输出。
从 2014 年到0 2014\n1 2015\n2 2015\n3 2016。
这就是我所做的:df.Year = str(df.Year)
之前:
之后:
特写:
【问题讨论】:
当您使用str(do.Year) 时,您会得到所有行的字符串表示形式,而不是每行都作为字符串的系列。
要将行转换为字符串,您需要使用df.Year = df.Year.astype(str)
【讨论】:
这可能有助于执行预期的操作(将列转换为特定类型)Change column type in pandas。至于为什么会这样,让我们举个例子
table.csv
Year
2010
2011
2012
让我们考虑一下这个 sn-p
import pandas as pd
df = pd.read_csv("table.csv")
print(str(df.Year))
产生的输出是
0 2010
1 2011
2 2012
Name: Year, dtype: int64
正如link 明确提到的,对数据框的属性访问会返回一个系列对象。当你对一个系列调用 str 时,它基本上调用 Series.str (Does python `str()` function call `__str__()` function of a class?) 因此在执行问题中提到的操作后,你存储 Series.str 在年份列的每一行中。 如本文开头所述,您可以参考 SO 链接,它非常不言自明。但是,如果您想要代码示例,请发表评论。
代码片段
这是将列转换为整数类型的方法之一(灵感来自上面共享的 SO 链接)
import pandas as pd
df = pd.read_csv("table.csv")
df.Year = df.Year.astype(str)
print(type(df.Year[0])) #Prints <class 'str'>
print(df)
【讨论】: