python - 从数据库读取数据时如何避免 pandas 数据框列值中的尾随零?

标签 python pandas dataframe

我正在将数据从 postgresql DB 读取到 pandas 数据帧中。在其中一列中,所有值都是整数,但有些值缺失。读取时的数据帧将尾随零附加到列中的所有值。

例如原始数据

SUBJID
1031456
1031457
1031458

我在 Dataframe 列中得到的是这个

df['SUBJID'].head()
1031456.0
1031457.0
1031458.0

我知道我可以删除它,但有多个列,我永远不知道哪一列会出现此问题。因此,在读取自身时,我想确保所有内容都被读取为字符串且没有尾随零。

我已经尝试过df = pd.read_sql('q',dtype=str)。但它没有给出所需的输出。 请告诉我解决方案。

最佳答案

尝试将列的数据类型设置为 int,然后设置为 str。

df['SUBJID'] = df['SUBJID'].astype('int32')
df['SUBJID'] = df['SUBJID'].astype(str)

如果你想手动修复字符串,那么你可以这样做

df['SUBJID'] = df['SUBJID'].apply(lambda x: x.split(".")[0])

这应该去掉“.”及其后面的所有内容,但请确保不要在包含所需的 "." 的列上使用它。

关于python - 从数据库读取数据时如何避免 pandas 数据框列值中的尾随零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63391829/

相关文章:

python - 基于人脸识别更新标签

python - VSCode 找不到 pipenv : spawn pipenv ENOENT

python - 在数据框中查找特定元素的列名

python - 如何计算 Pandas 中列成对相关的 p 值?

python - 重命名 Pandas DataFrame 索引

r - 在数据框中查找包含字符串作为值的列的索引

python - 如何使用 Selenium 浏览整个网站?

python - 使用 for 循环获取行数

python - 是否有一个 groupby 函数可以创建一个从名称到下划线的新数据框?

python - Jupyter笔记本: need to review all cells in a data frame