我有以下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
谢谢!
答案 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']