Я разбираю .csv файл (пример файла можно посмотреть здесь). Я извлекаю данные 2-й и 7-й строк. Нет проблем с этим. вот как я это делаю.
import pandas as pd
import numpy as np
df = pd.read_csv("datas.csv", index_col=0, header=None)
d = {'YSS':'Yahoo!リスティング 12月分 12/1〜12/31',
'YDNRT':'Yahoo!リマーケティング 12月分 12/1〜12/31',
'YDN':' Yahoo!ディスプレイネットワーク 12月分 12/1〜12/31',
'GSN':'Googleリスティング 12月分 12/1〜12/31',
'GDNRM':'Googleリマーケティング 12月分 12/1〜12/31',
'GDN':'Googleディスプレイネットワーク 12月分 12/1〜12/31'}
pat = r'({})'.format('|'.join(d.keys()))
df.loc['アカウント名'] = df.loc['アカウント名'].str.extract(pat, expand=False).dropna().map(d)
df.loc['利用額(Fee抜き)'] = df.loc['利用額(Fee抜き)'].astype(str).apply(lambda x: x.split(".")[0])
df1 = df.loc[['アカウント名', '利用額(Fee抜き)']]
df1 = df1.T
df1.columns = ['項目','金額']
df1['数量'] = 1
df1['単位'] = "式"
df1['単価'] = np.nan
wow = df1[['項目','数量','単位','単価', '金額']]
newFile = wow.shift(1)
newFile['項目'] = newFile['項目'].fillna(df.loc['クライアント名'])
newFile.loc[newFile['項目'].str.contains('プレサンス'),['数量','単位','単価', '金額']] = ['','','','']
pos = newFile.index[newFile['項目'].str.contains('プレサンス')]
d = {}
i = 0
for p in pos:
if p == pos[0]:
d[p] = newFile.loc[:pos[i+1]-1].append(pd.Series('',newFile.columns), ignore_index=True)
elif (i + 1) > len(pos) - 1:
d[p] = newFile.loc[pos[i-1]+1:]
else:
d[p] = newFile.loc[p:pos[i+1]-1].append(pd.Series('',newFile.columns), ignore_index=True)
i = i + 1
pd.concat(d, ignore_index=True)
p.to_csv('newfile.csv', index=False)
Создание нового файла .csv с новыми столбцами. Вы можете видеть это здесь. https://imgur.com/a/5w63Yht Но мне нужно сделать еще кое-что.
В исходном файла строка 1 содержит названия компаний. Я хочу проанализировать названия этих компаний и поместить их во главе каждой группы, как показано на рисунке: https://imgur.com/a/4T2WxYt также необходимо удалить общие суммы...
Хотя я не очень уверен, что это возможно или нет...
newFile = newFile.loc[~newFile['項目'].str.contains('プレサンス')]
, если вы хотите очистить эти значения, вам придется перезаписать существующие значения. - person EdChum   schedule 16.01.2019newFile.loc[~newFile['項目'].str.contains('プレサンス'),['数量','単位','単価', '金額']] = ['','','','']
должно было сработать. - person EdChum   schedule 16.01.2019'項目'
новым текстом и удалить сумму? Что-то вродеnewFile.loc[~newFile['項目'].str.len() == 0,['数量','単位','単価', '金額']] = ['','','','']
, вам все равно придется генерировать новые значения - person EdChum   schedule 16.01.2019