gpt4 book ai didi

python - 如何连接 Pandas 数据框中的特定行?

转载 作者:行者123 更新时间:2023-12-01 07:00:13 24 4
gpt4 key购买 nike

我想连接 Pandas 数据框中的特定行。

我有一列“文本”和另一列“名称”。 “text”列的每个条目都有一个字符串。 “name”列的某些条目是空的,因此我想将“name”列中具有空条目的第 n 行与行 (n-1) 连接起来。如果行 (n-1) 在“名称”列中也有一个空条目,则这些行应连接到在“名称”列中具有条目的下一行。

例如:
输入:

Text=["Abc","def","ghi","jkl","mno","pqr","stu"]

Name=["a","b","c",““,““,"f","g"]

预期输出:

Text= ["Abc","def","ghijklmno","pqr","stu"]

Name = ["a","b","c","f","g"]
<小时/>

我想让我的问题更容易理解:

我有两个列表:

index = [3,6,8,9,10,12,15,17,18,19]
text = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
new = []
for i in range(0,len(text)):
if i not in index:
if i+1 not in index:
new.append(text[i])
if i in index:
new.append(text[i-1]+' '+ text[i])

列表索引显示文本的错误分割(当列名称没有值时)。因此,我想附加例如文本[3]到文本[2]。所以我会得到一个新条目“c d”。

最后,输出应该是:

new = ['a','b,'c d','e','f g','hijk','lm','n','op','qrst','u','v','w','x','y','z']

这些列表只是我的大型文本列表的简化示例。我不知道有多少条目需要连接在一起。我的算法仅在必须将条目 n 与条目 n-1 连接时才有效。但也有可能我必须将条目 n 与 n-10 之前的条目连接起来,因此我得到一个大条目。

我希望我的问题现在更容易理解。

最佳答案

将空字符串替换为 NaN 并向前填充。然后 groupby 命名列并聚合。

import pandas as pd

df.Name = df.Name.str.replace('', pd.np.nan).ffill()
out_df = df.groupby('Name').agg({'Text': ' '.join})

关于python - 如何连接 Pandas 数据框中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58673431/

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