将IP地址转换为字符串python

时间:2020-07-02 11:15:42

标签: python pandas string list pandasql

我有以下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

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用:

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']