0
votes

Comment fusionner des lignes pour contenir une liste des valeurs en pandas?

J'ai un ensemble de dataframes contenant des tweets avec des horodatages. Afin de créer une série de temps quotidienne, j'ai essayé de fusionner les lignes de jour dans chaque Dataframe.

Ma solution était ce code dans une boucle: p> xxx pré>

tandis que les résultats Semble bien, la boucle est terriblement lente et compliquée sans raison. De plus, si je fusionne des lignes à nouveau comme ceci, le résultat sera la liste des listes, qui n'est pas souhaitable aussi. P>

Le processus est censé être comme suit: P>

        time            text
    0   [1, 2, 3, 4, 5] [foo, bar, foo, bar, foo]


0 commentaires

3 Réponses :


0
votes

Cela pourrait fonctionner:

def summarize(df,start,end,columns):
    row = {}
    for col in columns:
        print(df[col][start:end].tolist())
        row[col]=df[col][start:end].tolist()

    df =df.append(row,ignore_index=True)
    df=df.drop(df.index[range(start,end)])
    df = df.reset_index()
    return df


0 commentaires

2
votes

1ère question xxx

2e question xxx


0 commentaires

0
votes

Vous pouvez essayer de créer une fonction consolidation de vos données dans des listes ci-dessous:
df = pd.DataFrame({'time': [1,2,3,4,5],
                   'text': ['foo', 'bar', 'foo', 'bar', 'foo']})
df

    text    time
0   foo     1
1   bar     2
2   foo     3
3   bar     4
4   foo     5

def consolidate(df, break_index): #df = dataframe, break_index = index where you want to create the first list
    text = [[x for x in df['text'][0:break_index]]]
    time = [[x for x in df['time'][0:break_index]]]
    if break_index == len(df):
        pass
    else:
        time.append([x for x in df['time'][break_index:]])
        text.append([x for x in df['text'][break_index:]])
    df2 =pd.DataFrame({'time':time,'text':text})
    return df2

consolidate(df,3)
    text             time
0   [foo, bar, foo]  [1, 2, 3]
1   [bar, foo]       [4, 5]

consolidate(df,5)
    text                        time
0   [foo, bar, foo, bar, foo]   [1, 2, 3, 4, 5]


0 commentaires