Я получаю сообщение об ошибке в моем коде, потому что я попытался сделать dataframe, вызвав элемент из csv. У меня есть два столбца, которые я вызываю из файла: CompanyName и QualityIssue. Существует три типа вопросов качества: качество оборудования, пользователь и ни один из них. Я сталкиваюсь с проблемами, которые пытаются сделать dataframe df.Equipment Quality, что явно не работает, потому что там есть место. Я хочу взять качество оборудования из исходного файла и заменить пробел знаком подчеркивания.Удаление пространства в dataframe python
вход:
Top Calling Customers, Equipment Quality, User, Neither,
Customer 3, 2, 2, 0,
Customer 1, 0, 2, 1,
Customer 2, 0, 1, 0,
Customer 4, 0, 1, 0,
Вот мой код:
import numpy as np
import pandas as pd
import pandas.util.testing as tm; tm.N = 3
# Get the data.
data = pd.DataFrame.from_csv('MYDATA.csv')
# Group the data by calling CompanyName and QualityIssue columns.
byqualityissue = data.groupby(["CompanyName", "QualityIssue"]).size()
# Make a pandas dataframe of the grouped data.
df = pd.DataFrame(byqualityissue)
# Change the formatting of the data to match what I want SpiderPlot to read.
formatted = df.unstack(level=-1)[0]
# Replace NaN values with zero.
formatted[np.isnan(formatted)] = 0
includingtotals = pd.concat([formatted,pd.DataFrame(formatted.sum(axis=1),
columns=['Total'])], axis=1)
sortedtotal = includingtotals.sort_index(by=['Total'], ascending=[False])
sortedtotal.to_csv('byqualityissue.csv')
Это, кажется, часто задаваемый вопрос, и я пробовал много решений, но они, похоже, не работает. Вот то, что я пробовал:
with open('byqualityissue.csv', 'r') as f:
reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
return [[x.strip() for x in row] for row in reader]
sentence.replace(" ", "_")
И
sortedtotal['QualityIssue'] = sortedtotal['QualityIssue'].map(lambda x: x.rstrip(' '))
И то, что я считал наиболее перспективным здесь http://pandas.pydata.org/pandas-docs/stable/text.html:
formatted.columns = formatted.columns.str.strip().str.replace(' ', '_')
, но я получил эту ошибку: AttributeError: «Index 'объект не имеет атрибута' str '
Спасибо за вашу помощь заранее!
Вы пытаетесь это сделать: formatted.columns = [x.strip(). Заменить ('', '_') для x в formatted.columns] –
Вы можете сделать 'df.columns = pd.Series (df .columns) .str.replace ('', '_') 'в стороне, почему вы не просто выполняете' df ['Equipment Quality'] ', который всегда будет работать, а не пытается получить доступ к столбцам в качестве атрибута, который выиграл «т? – EdChum
@EdChum Да! Спасибо за это, потому что я предполагаю, что это должен был быть реальный вопрос, а не работа. Я не был уверен в синтаксисе, но это сработало лучше. – jenryb