【问题标题】:convert an IP address into a string python将IP地址转换为字符串python
【发布时间】:2020-10-22 23:31:45
【问题描述】:

我有以下 df,我想将每个 ip 地址转换为字符串,即“207.46.13.187”

我尝试了以下方法,但没有成功。我不确定小数是否与它有关。

df['IP'] = df['IP'].astype(str)

当前数据框:

    IP            date  year   month
0   207.46.13.187   24  2020    6
1   207.46.13.187   24  2020    6
2   40.77.167.144   24  2020    6
3   40.77.167.144   24  2020    6
4   207.46.13.146   23  2020    6
... ... ... ... ...
4512    82.145.221.171  14  2015    5
4513    82.145.209.120  13  2015    5
4514    82.145.221.232  13  2015    5
4515    82.145.221.232  13  2015    5
4516    82.145.222.238  13  2015    5

目标:

       IP          date year   month
0   "207.46.13.187" 24  2020    6
1   "207.46.13.187" 24  2020    6
2   "40.77.167.144" 24  2020    6
3   "40.77.167.144" 24  2020    6
4   "207.46.13.146" 23  2020    6

谢谢!

【问题讨论】:

  • 你输入的类型是什么?
  • 请在您的问题中添加pandas 标签,以便最好地帮助提供输入和预期的输出数据。
  • 对我来说看起来很粘
  • 同上@Chris。 AFAIK Pandas 甚至没有 IP dtype,您需要使用cyberpandas 才能获得IP dtype 的机会。
  • 如果它的dtype是“object”,那么它就是一个字符串!

标签: python pandas string list pandasql


【解决方案1】:

尝试使用:

df['IP'] = df['IP'].apply(lambda x: str(x))

下面是我编译的一个简单示例。我将只看整数,但希望这能澄清 Pandas 中数据类型的一些混淆。

我将创建一个数据框

df = pd.DataFrame({'IP': [1, 2, 3, 4, 5]})

让我们检查一下类型,它应该返回整数:

df.dtypes

IP    int64
dtype: object

让我们用列表检查一下

df['IP'].values.tolist()
[1, 2, 3, 4, 5] # we have a list of integers!

现在,让我们将其转换为字符串:

df['IP'] = df['IP'].apply(lambda x: str(x))

让我们再次检查类型,它应该返回 object

df.dtypes

IP    object
dtype: object

让我们再用一个列表来检查一下:

df['IP'].values.tolist()
['1', '2', '3', '4', '5']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2017-08-25
    • 2016-01-19
    • 2011-02-13
    • 2019-05-13
    相关资源
    最近更新 更多