首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas将列的数据类型从float更改为integer

Pandas将列的数据类型从float更改为integer
EN

Stack Overflow用户
提问于 2020-09-14 19:29:04
回答 1查看 44关注 0票数 0

我对这里发生的事情感到有点困惑。我有一个方法,它从一个pandas数据帧中获取值,然后创建一个新的。有一些列只能是字符串、浮点数或整数。该方法运行良好,并创建新的dataframe,其中数据类型不变,只有一列例外,由于某种原因,它只给出数字的int部分。我不明白为什么特别是那个专栏。我的方法看起来像这样:

代码语言:javascript
复制
def assignPropsToFinList(self,gensodLays):
    updtZbotmDf=pd.DataFrame({"ZBOTM (m)":gensodLays})
    columnTitle = self.soilDf.columns.tolist()
    for i in range(len(columnTitle)):
        if i == 0:
            pass
        else:
            updtZbotmDf[columnTitle[i]] = 0
            for j in range(len(gensodLays)):
                for k in range(len(self.soilDf)):
                    if j == 0 and k == 0:
                        updtZbotmDf.loc[:, (columnTitle[i])][j] = self.soilDf.loc[:, (columnTitle[i])][k]
                    elif updtZbotmDf["ZBOTM (m)"][j] == self.soilDf["Penetration (m)"][k] and updtZbotmDf["ZBOTM (m)"][j] == \
                            self.soilDf["Penetration (m)"][k - 1]:                                                   # here I am sorting the points that where onee layer ends and other starts and both have same depth value
                        updtZbotmDf.loc[:, (columnTitle[i])][j] = self.soilDf.loc[:, (columnTitle[i])][k - 1]
                    elif updtZbotmDf["ZBOTM (m)"][j] == self.soilDf["Penetration (m)"][k] and updtZbotmDf["ZBOTM (m)"][j] != \
                            self.soilDf["Penetration (m)"][k - 1]:
                        updtZbotmDf.loc[:, (columnTitle[i])][j] = self.soilDf.loc[:, (columnTitle[i])][k]
                    elif self.soilDf["Penetration (m)"][k] > updtZbotmDf["ZBOTM (m)"][j] > self.soilDf["Penetration (m)"][k - 1]:
                        updtZbotmDf.loc[:, (columnTitle[i])][j] = self.soilDf.loc[:, (columnTitle[i])][k]
    return updtZbotmDf

由于某种原因将值从float更改为int的列的唯一特定之处在于,它既包含整数又包含浮点数,而且它紧跟在仅包含字符串值的列之后

EN

回答 1

Stack Overflow用户

发布于 2020-09-14 19:54:34

你试试这个怎么样?

代码语言:javascript
复制
updtZbotmDf=pd.DataFrame({"ZBOTM (m)":gensodLays},dtype=str)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63883385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档