Как я могу использовать Python 3 и pandas для извлечения и объединения одинаковых номеров строк из нескольких листов Excel? - PullRequest
0 голосов
/ 23 февраля 2020

Это для Python. У меня есть файл excel с именем "translation.xlsx", содержащий 3 листа с именами людей, которые перевели 8 строк одного и того же текста с русского на английский sh. Здесь вы можете увидеть перевод Engli sh на двух листах.

You can see You can see

Я хотел бы используя pandas, если это возможно, но с другой библиотекой все в порядке, выньте строку 1 из каждого листа и соедините их вместе, чтобы у меня были "перевод Боба строки 1, перевод ФРС строки 1, ряд Радж 1" вместе, а затем "Боб перевод строки 2, федеральный перевод строки 2, Радж, строка 2 "вместе

например, строка 1: француз подал в суд на Uber за расторжение брака (Fed) / француженка подал в суд на Uber за разрушение его брака (Bob) / Француз подает в суд на Uber за разрушение его брака (Радж)

Формат вывода НЕ важен. Это может быть список, датафрейм, Excel, словарь и т. Д. c. Пока я могу сфотографировать перевод каждого человека для каждой строки рядом друг с другом. Метки с именами людей и номерами строк также не важны, если есть возможность включить, хорошо, но если нет, то нет проблем.

Здесь нет кода, так как я не смог подобраться близко, несмотря на долгую попытку

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020
df_Bob = pd.read_excel('translation.xlsx', sheet_name = 'Bob')

df_Fed = pd.read_excel('translation.xlsx', sheet_name = 'Fed')

df_Raj = pd.read_excel('translation.xlsx', sheet_name = 'Raj')

df_concat = pd.concat([df_Bob, df_Fed, df_Raj] , axis = 1)

df= df_concat.apply(' / '.join, axis=1).to_frame('ColumnName')

prinf(df)
0 голосов
/ 23 февраля 2020

Используйте read_excel с sheet_name=None для всех имен листов в словаре фреймов данных:

dfs = pd.read_excel('a.xlsx', sheet_name=None, header=None)
print (dfs)
OrderedDict([('Bob',    0
0  a
1  b
2  c), ('Fed',     0
0  a1
1  b1
2  c1), ('Raj',     0
0  a1
1  b2
2  c2)])

Затем объедините с помощью concat:

df = pd.concat(dfs, axis=1)
print (df)
  Bob Fed Raj
    0   0   0
0   a  a1  a1
1   b  b1  b2
2   c  c1  c2

И последние соединяют строки вместе join и преобразуют в один столбец DataFrame:

df1 = df.apply(' / '.join, axis=1).to_frame('out')
print (df1)
           out
0  a / a1 / a1
1  b / b1 / b2
2  c / c1 / c2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...