gpt4 book ai didi

python - 通过替换 pandas 单元格中的第二行,将一列中的值连接到另一列

转载 作者:行者123 更新时间:2023-12-01 01:22:05 26 4
gpt4 key购买 nike

我有两列,想要将一列中的值连接到另一列。我想将“A”列中的值连接到“B”列,但是如果“B”列中的单元格不为空且仅包含值,则我希望在“B”列中每个单元格包含两行如果“B”列中的单元格为空,则从“A”列开始。

这是数据框

df

  A      B
Nr.1 18b
Nr.1
Nr.1 18c\nNr.2\n
Nr.1 18d\nNr.1
Nr.2
Nr.2 20a\n
Nr.2 20a\nNr.2
Nr.3 20b\nNr.2\n
Nr.3

所以,我想要:

df

  A      B
Nr.1 18b\nNr.1
Nr.1 Nr.1
Nr.1 18c\nNr.1
Nr.1 18d\nNr.1
Nr.2 Nr.2
Nr.2 20a\nNr.2
Nr.2 20a\nNr.2
Nr.3 20b\nNr.2
Nr.3 Nr.3

我尝试使用 df['B'] = df[["B", "A"]].apply(lambda x: ''.join(x.dropna().astype(str)),axis= 1) 当我想添加“A”列中的值并且当“B”列中的单元格以换行符 (\n) 结尾时它可以工作

当我在字符串末尾没有换行符时,我使用 df['B'] = df[["B", "A"]].apply(lambda x: '\n'.join( x.dropna().astype(str)),axis=1)

但问题是当我的单元格中已经有两条线时。我需要将第二行中的值替换为“A”列中的值,并且字符串末尾不应为“\n”。

有什么优雅的方法可以解决这个问题吗?我感谢任何帮助。

最佳答案

使用split使用索引选择列表的第一个值,添加分隔符和列 A 并最后将缺失值替换为 fillna :

df['B'] = (df['B'].str.split('\\').str[0] + '\\n' + df['A']).fillna(df['A'])
print (df)
A B
0 Nr.1 18b\nNr.1
1 Nr.1 Nr.1
2 Nr.1 18c\nNr.1
3 Nr.1 18d\nNr.1
4 Nr.2 Nr.2
5 Nr.2 20a\nNr.2
6 Nr.2 20a\nNr.2
7 Nr.3 20b\nNr.3
8 Nr.3 Nr.3

关于python - 通过替换 pandas 单元格中的第二行,将一列中的值连接到另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com