Изменить повторное значение строки в столбцы - python - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь изменить данные, используя pandas.melt

, вот мой текстовый файл

2017/11/14(Tue)
23:20   Aditya Laksana S.   hahaha
23:20   Aditya Laksana S.   [Sticker]
23:20   Veronika Xaveria    [Sticker]
2017/12/14(Thu)
24:12   Veronika Xaveria    xxxxxxxx
24:14   Aditya Laksana S.   weeee
24:15   Aditya Laksana S.   [Sticker]

Я бы хотел, чтобы данные выглядели как

2017/11/14(Tue) 23:20   Aditya Laksana S.   hahaha
2017/11/14(Tue) 23:20   Aditya Laksana S.   [Sticker]
2017/11/14(Tue) 23:20   Veronika Xaveria    [Sticker]
2017/12/14(Thu) 24:12   Veronika Xaveria    xxxxxxxx
2017/12/14(Thu) 24:14   Aditya Laksana S.   weeee
2017/12/14(Thu) 24:15   Aditya Laksana S.   [Sticker]

1 Ответ

0 голосов
/ 24 декабря 2018

Если я понимаю, что вы ищете и как выглядит ваш текущий фрейм данных, я полагаю, вы можете разбить ваш фрейм данных по датам и использовать update Я не думаю, что это будет наиболее эффективным решением, поскольку вы выполняете итерациюlen of dfs.

при условии, что этот df, который я также предполагаю, не является мультииндексом, поскольку вы не указали, что он был:

             0             1
0   2017/11/14(Tue)       NaN
1   23:20                 Aditya Laksana S. hahaha
2   23:20                 Aditya Laksana S. [Sticker]
3   23:20                 Veronika Xaveria [Sticker]
4   2017/12/14(Thu)       NaN
5   24:12:00              Veronika Xaveria xxxxxxxx
6   24:14:00              Aditya Laksana S. weeee
7   24:15:00              Aditya Laksana S. [Sticker]

Тогда:

# find the index of the dates assuming that they follow the below format
idx = list(df[df[0].str.contains('Mon|Tue|Wed|Thu|Fri|Sat|Sun')].index)

# find all the values in idx
values = list(df.iloc[idx, 0].values)

# split your dataframe on idx
# this assumes that the first row contains a date
dfs = np.split(df,idx[1:])

# update your df using list comprehension
df[0].update(pd.concat([values[i] +' '+ dfs[i][0] for i in range(len(dfs))]))

# drop nulls
df.dropna()

              0                     1
1   2017/11/14(Tue) 23:20       Aditya Laksana S. hahaha
2   2017/11/14(Tue) 23:20       Aditya Laksana S. [Sticker]
3   2017/11/14(Tue) 23:20       Veronika Xaveria [Sticker]
5   2017/12/14(Thu) 24:12:00    Veronika Xaveria xxxxxxxx
6   2017/12/14(Thu) 24:14:00    Aditya Laksana S. weeee
7   2017/12/14(Thu) 24:15:00    Aditya Laksana S. [Sticker]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...