如何在Pandas中从数组向DataFrame的列追加对应字符串?
如何将数组元素对应追加到DataFrame列末尾?
场景说明
你有如下结构的DataFrame:
import pandas as pd df = pd.DataFrame({ 'ip': ['10.10.20.9', '10.10.1.25', '10.1.13.45', '10.1.100.101', '10.1.100.11', '10.11.2.100', '10.1.2.151', '10.1.2.184', '10.1.20.185'], 'metric': [0]*9 })
希望将数组arr = ["(0)", "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)"]中的元素,按位置对应追加到ip列的每个值末尾,得到如下结果:
ip metric 0 10.10.20.9(0) 0 1 10.10.1.25(1) 0 2 10.1.13.45(2) 0 3 10.1.100.101(3) 0 4 10.1.100.11(4) 0 5 10.11.2.100(5) 0 6 10.1.2.151(6) 0 7 10.1.2.184(7) 0 8 10.1.20.185(8) 0
实现方法
直接将ip列转为字符串类型后,与目标数组进行按位置拼接即可,Pandas会自动匹配索引位置完成对应元素的拼接:
arr = ["(0)", "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)"] # 拼接操作 df["ip"] = df["ip"].astype(str) + arr
如果需要更明确的类型匹配,也可以把数组转为Pandas Series后再拼接,效果完全一致:
df["ip"] = df["ip"].astype(str) + pd.Series(arr)
执行上述代码后,ip列就会按需求完成元素追加。
内容的提问来源于stack exchange,提问作者Souvik Ray
相关产品推荐
相关产品推荐

