如何在Pandas中从另一个数组中将字符串追加到 Dataframe 的列中?

zbdgwd5y  于 2023-03-11  发布在  其他
关注(0)|答案(3)|浏览(115)

我有一个如下所示的数据框架

ip  metric
0       10.10.20.9       0
1       10.10.1.25       0
2       10.1.13.45       0
3     10.1.100.101       0
4      10.1.100.11       0
5      10.11.2.100       0
6       10.1.2.151       0
7       10.1.2.184       0
8      10.1.20.185       0

我想将一些字符串附加到从数组中选取的ip列,如下所示

arr = ["(0)", "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)"]

                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列的值中。
现在我知道了如何通过执行如下操作向Dataframe的列添加字符串

df["ip"] = df["ip"].astype(str) + '%'

但是我不知道如何将数组中的项添加到Dataframe列中,你知道该怎么做吗?

fiei3ece

fiei3ece1#

由于数组的长度与DataFrame的长度相同,因此可以连接字符串:

df['ip'] += arr
print(df)

# Output
                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
2izufjch

2izufjch2#

尝试使用lambda函数

df['ip'] = df['ip'].apply(lambda x: str(x) + "%")
3pvhb19x

3pvhb19x3#

你可以使用pop弹出数组中的元素,如果数组元素少于df观察值,你可以添加if-else语句以防万一。

df['ip'] = df['ip'].apply(lambda x: str(x) + arr.pop(0) if arr else str(x))

相关问题