Python Panda:在两行的concat字符串之后放置行

Python Panda:在两行的concat字符串之后放置行,python,pandas,for-loop,Python,Pandas,For Loop,我喜欢检查一列,如果列日期与下一列相同,则合并备注列。日期行可能超过2行 我当前的代码在此阶段被卡住: df = {'date': ['02-Jan','02-Jan','03-Jan','03-Jan','03-Jan','04-Jan','05-Jan'], 'remarks':['a','b','c','d','e','f','g']} df = pd.DataFrame(df) for eachRow in range(len(df)): print("row" ,

我喜欢检查一列,如果列日期与下一列相同,则合并备注列。日期行可能超过2行

我当前的代码在此阶段被卡住:

df = {'date': ['02-Jan','02-Jan','03-Jan','03-Jan','03-Jan','04-Jan','05-Jan'],
       'remarks':['a','b','c','d','e','f','g']}
df = pd.DataFrame(df)
for eachRow in range(len(df)):
    print("row" , eachRow)
    try:
        if(df['date'][eachRow] == df['date'][eachRow + 1]):
            df['remarks'][eachRow] = df['remarks'][eachRow] + df['remarks'][eachRow + 1]
            print('drop', eachRow+1)
            df = df.drop(eachRow + 1) 
            print(df)
    except:
        print(df)
我的输出电流是。我注意到,当我有两个以上的连续行具有相同的日期时,当我删除第3行时,我无法检查第2行和第4行,因为我的eachRow指针已移动到第3行,并且第3行没有可比较的内容。如果我选择不删除下一行,我将使用不正确的注释复制行。我该怎么办

row 0
drop 1
     date remarks
0  02-Jan      ab
2  03-Jan       c
3  03-Jan       d
4  03-Jan       e
5  04-Jan       f
6  05-Jan       g
row 1
     date remarks
0  02-Jan      ab
2  03-Jan       c
3  03-Jan       d
4  03-Jan       e
5  04-Jan       f
6  05-Jan       g
row 2
drop 3
     date remarks
0  02-Jan      ab
2  03-Jan      cd
4  03-Jan       e
5  04-Jan       f
6  05-Jan       g
row 3
     date remarks
0  02-Jan      ab
2  03-Jan      cd
4  03-Jan       e
5  04-Jan       f
6  05-Jan       g
row 4
row 5
row 6
     date remarks
0  02-Jan      ab
2  03-Jan      cd
4  03-Jan       e
5  04-Jan       f
6  05-Jan       g

一个简单的更改就可以保存它:

不要删除下一行(
eachRow+1
),而是删除当前行(
eachRow
):

df=df.下降(每小时)

同时,您必须注意,在删除当前行时,必须在下一行中进行连接。因此,将行更改为:

df['comments'][eachRow+1]=df['comments'][eachRow]+df['comments'][eachRow+1]

df = {'date': ['02-Jan','02-Jan','03-Jan','03-Jan','03-Jan','04-Jan','05-Jan'],
       'remarks':['a','b','c','d','e','f','g']}
df = pd.DataFrame(df)
for eachRow in range(len(df)):
    print("row" , eachRow)
    try:
        if(df['date'][eachRow] == df['date'][eachRow + 1]):
            df['remarks'][eachRow+1] = df['remarks'][eachRow] + df['remarks'][eachRow + 1]
            print('drop', eachRow)
            df = df.drop(eachRow)
            print(df)
    except:
        print(df)