Python 3.x 将对象转换为Int类型

Python 3.x 将对象转换为Int类型,python-3.x,pandas,Python 3.x,Pandas,您好,我有一个问题,要将对象的列转换为完整列的整数 我有一个数据帧,我试图将一些被检测为Object的列转换为Integer(或Float),但我已经找到的所有答案都适用于我:( 然后我尝试应用到数值方法,但不起作用。 然后,您可以在此处找到一个自定义方法: 但也不起作用:data3['Title'].astype(str).astype(int) (很抱歉,我无法再传递图像-您必须相信我,它不起作用) 我尝试使用inplace语句,但似乎没有集成到这些方法中: 我很确定答案是愚蠢的,但却找

您好,我有一个问题,要将对象的列转换为完整列的整数

我有一个数据帧,我试图将一些被检测为Object的列转换为Integer(或Float),但我已经找到的所有答案都适用于我:(

然后我尝试应用到数值方法,但不起作用。

然后,您可以在此处找到一个自定义方法: 但也不起作用:
data3['Title'].astype(str).astype(int)
(很抱歉,我无法再传递图像-您必须相信我,它不起作用)

我尝试使用inplace语句,但似乎没有集成到这些方法中:

我很确定答案是愚蠢的,但却找不到:( 有人能帮我吗


谢谢

您需要重新分配输出:

#maybe also works omit astype(str)
data3['Title'] = data3['Title'].astype(str).astype(int)
或:

样本:

data3 = pd.DataFrame({'Title':['15','12','10']})
print (data3)
  Title
0    15
1    12
2    10

print (data3.dtypes)
Title    object
dtype: object



你也可以试试这个代码,和我一起工作

data3.Title= pd.factorize(data3.Title)[0]

2年11个月后,但我走了

首先检查数据是否有空格、特殊字符(如逗号、点或其他任何字符)很重要。如果有,则基本上需要删除这些字符,然后将字符串数据转换为浮点,然后再转换为整数(对于我的数据是数值,但有逗号,如4118662的情况,这对我很有效)


正如python爱好者所说

这个命令对我也有效

data3.Title = data3.Title.str.replace(',', '').astype(float).astype(int)
但也适用于

data3.Title = data3.Title.str.replace(',', '').astype(int)

在替换之前必须先使用str,以便去掉逗号,然后再将其更改为int/float,否则会出现错误。

我有一个这样的数据集

dataset.info()

现在,


INT64索引:79868个条目,0到79901
数据列(共6列):
#列非空计数数据类型
---  ------            --------------  ----- 
0查询79868非空对象
1视频标题79868非空对象
2视频ID 79868非空对象
3个视频视图79868非空int64
4注释ID 79868非空对象
5.79868非空对象
数据类型:int64(1),对象(5)
内存使用率:6.1+MB

问题已解决

您需要自行分配,例如,
data3['Title']=pd.to_numeric(data3['Title'])
data3['Title']data3['Title'])。aType(int)
确实应该有一个规范问题,因为此变体出现了无数次
data3.Title= pd.factorize(data3.Title)[0]
data3.Title = data3.Title.str.replace(',', '').astype(flaoat).astype(int)
data3.Title = data3.Title.str.replace(',', '').astype(float).astype(int)
data3.Title = data3.Title.str.replace(',', '').astype(int)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 79902 entries, 0 to 79901
Data columns (total 6 columns):
 #   Column            Non-Null Count  Dtype 
---  ------            --------------  ----- 
 0   Query             79902 non-null  object
 1   Video Title       79902 non-null  object
 2   Video ID          79902 non-null  object
 3   Video Views       79902 non-null  object
 4   Comment ID        79902 non-null  object
 5   cleaned_comments  79902 non-null  object
dtypes: object(6)
memory usage: 5.5+ MB
dataset = dataset.replace(to_replace='None', value=np.nan).dropna()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 79868 entries, 0 to 79901
Data columns (total 6 columns):
 #   Column            Non-Null Count  Dtype 
---  ------            --------------  ----- 
 0   Query             79868 non-null  object
 1   Video Title       79868 non-null  object
 2   Video ID          79868 non-null  object
 3   Video Views       79868 non-null  object
 4   Comment ID        79868 non-null  object
 5   cleaned_comments  79868 non-null  object
dtypes: object(6)
memory usage: 6.1+ MB
dataset['Video Views'] = pd.to_numeric(dataset['Video Views'])
dataset['Video Views'] = dataset['Video Views'].astype(int)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 79868 entries, 0 to 79901
Data columns (total 6 columns):
 #   Column            Non-Null Count  Dtype 
---  ------            --------------  ----- 
 0   Query             79868 non-null  object
 1   Video Title       79868 non-null  object
 2   Video ID          79868 non-null  object
 3   Video Views       79868 non-null  int64 
 4   Comment ID        79868 non-null  object
 5   cleaned_comments  79868 non-null  object
dtypes: int64(1), object(5)
memory usage: 6.1+ MB