我正在寻找在python中创建一个循环,将多个字符串行连接在一起。我创建了现在列为“ Before”的表,然后创建了要创建“ After”的表。有关如何执行此操作的任何想法?我目前正在使用以下代码来仅获取一个字符串,但我需要能够循环整个数据帧:
df.str.cat(sep='')
之前:
Text | Channel | Destination | Amount | Total
string1 NaN NaN NaN NaN
string2 DKI US 34 5
string3 NaN NaN NaN NaN
string4 DKI CA 39 20
之后:
Text | Channel | Destination | Amount | Total
string1string2 DKI US 34 5
string3string4 DKI CA 39 20
答案 0 :(得分:2)
通过shift
创建帮助者Series
,通过notna
检查非NaN,并通过cumsum
创建组。
然后汇总函数的函数,删除索引名称,并为相同的列添加reindex
:
a = df['total'].shift().notna().cumsum()
#for oldier pandas versions
#a = df['total'].shift().notnull().cumsum()
d = {'row':'first', 'total':'last', 'Text':''.join}
df = df.groupby(a).agg(d).rename_axis(None).reindex(columns=df.columns)
print (df)
row Text total
0 1 string1string2 3.0
1 3 string3string4 1.0