Захватить определенные строки и экспортировать их в другой CSV

Что я пытаюсь сделать здесь, собирая определенные строки по имени. И моя таблица данных CSV является горизонтальной. Не вертикально, вы можете увидеть здесь. Желтая часть - заголовки.

Образец как ниже.

---
Row 1 DATA DATA DATA
---
Row 2 YSS  YDD   GGS
---
Row 3 DATA DATA DATA
---
Row 4 DATA DATA DATA
---

Разобрать строки 2, 3, 4 и затем экспортировать их в другой файл new.csv. Сложная часть есть. После экспорта другого файла. Я хочу изменить имена данных строки 2.

Пример new.csv:

Row 2 YSS  YDD  GGS
---
Row 3 DATA DATA DATA
---
Row 4 DATA DATA DATA
---

Таким образом, пытаясь дать имена данным строки 2. Например, если YSS, тогда сделайте YSS -> Google или если это YDD, тогда сделайте это Yahoo. Экспорт снова new2.csv, это как:

Row 2 Google  Yahoo  Facebook
---
Row 3 DATA    DATA   DATA
---
Row 4 DATA    DATA   DATA
---

Я начинаю с этого, но не могу получить то, что хочу.

import pandas as pd

df = pd.read_csv("datas.csv", index_col=0)
df = df.drop(columns=df.columns[df.iloc[0].isnull()]._data)
df_out = df.loc['利用額(Fee抜き)','クライアント名','媒体'] 

print(df_out)

KeyError: 'метка [クライアント名] отсутствует в [столбцах]'

1 ответ

Решение

IIUC, вам может понадобиться что-то вроде этого:

Принимая во внимание df похоже:

    0       1       2       3
0   Row 2   YSS     YDD     GGS
1   Row 3   DATA    DATA    DATA
2   Row 4   DATA    DATA    DATA

d = {'YSS':'Google','YDD':'Yahoo','GGS':'Facebook'}
df.T.loc[1:,0] = df.T.loc[1:,0].map(d)
>>df

    0       1       2       3
0   Row 2   Google  Yahoo   Facebook
1   Row 3   DATA    DATA    DATA
2   Row 4   DATA    DATA    DATA

Если Row 2 это не столбец, а просто индекс:

df.loc['Row 2'] = df.loc['Row 2'].map(d)
>>df

        1       2       3
0           
Row 2   Google  Yahoo   Facebook
Row 3   DATA    DATA    DATA
Row 4   DATA    DATA    DATA
Другие вопросы по тегам