【问题标题】:pandas apply() auto add .0 behind of my stringpandas apply() 自动在我的字符串后面添加 .0
【发布时间】:2023-01-05 16:47:38
【问题描述】:

我仍在学习 python 并且不熟悉使用 panda 模块。我正在尝试将两列合并到一个由 IP 地址和 CIDR 组成的 csv 中,并输出到一个文本文件,例如:10.0.0.1/24,下面是我的代码:

import pandas as pd

path = '/Users/myfolder/Downloads/ip.csv'
df = pd.read_csv(path)
df = df[['Address', 'CIDR']].apply(lambda x: '/'.join(x.map(str)), axis=1)
df.to_csv("/Users/myfolder/Downloads/result.txt", header=False, index=False)

但是,结果每行后面都有一个 .0:

10.0.0.1/24.0 10.0.0.2/24.0 10.0.0.3/24.0 是否有要启用的标志,或者我需要更改的代码部分是否有问题?

尝试使用其他连接方法,如 merge() 或 agg() 但似乎 join() 和 map() 是我能得到的最接近的方法,因为数据不是字符串开头。

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    您应该首先转换为整数,然后转换为字符串以避免浮点数:

    lambda x: '/'.join(x.astype(int).astype(str))
    

    要么:

    lambda x: '/'.join(x.astype('Int64').astype(str))
    

    【讨论】:

      猜你喜欢
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多