我有一个CSV文件,里面有一列IP地址、MAC地址和其他一些数据
输入:
| IP Address | MAC Address | ID |
| --- | --- | --- |
| 10.10.10.1 | {mac1} | {id1} |
| 10.10.10.112 | {mac2} | {id2} |
| 10.10.10.17 | {mac3} | {id3} |
| 10.10.10.7 | {mac4} | {id4} |
我期望的输出是:
| IP Address | MAC Address | ID |
| --- | --- | --- |
| 10.10.10.1 | {mac1} | {id1} |
| 10.10.10.7 | {mac4} | {id4} |
| 10.10.10.17 | {mac3} | {id3} |
| 10.10.10.112 | {mac2} | {id2} |
其中IP地址与其对应的MAC和ID按正确的升序排列
我试过使用pandas Dataframe.sort_values()
,它在没有键的情况下将IP地址以不正确的升序排列,因为它将IP视为整数而不是IP地址。我也试过使用sort_values()
和参数key=ipaddress.IPv4Address
,但我只得到KeyError
df_new = df.sort_values(df['IP_Address'], key=ipaddress.IPv4Address)
我还尝试了sorted()
,它将IP地址以正确的顺序放入列表中,然后当我将其放回 Dataframe 时,它不会对每个IP的相应MAC和ID进行排序
1条答案
按热度按时间pb3s4cty1#
此方法使用
Series.str.split
和df.apply()