最終目標:ヘッダーとカラムズの重複の解消(3つ目の表のIndex“0”とヘッド)
問題:そもそもの問題として表内の行数とカラムズの個数がそろっていないため、csvが開けないというところから始まります。
上記の問題を解決するため、カラムズに数字の名前を割り当てる処理をしています。(col_names = [ 'c{0:02d}'.format(i) for i in range(10) ])
その後、カラムズを再度削除します。しかし“c00”内にすべてのデータが入っているため出してあげる処理をしています。(dfs2 = dfs2['c00'].str.split(',', expand=True))
columns8のNoneとIndex0が不要なので、消すためにcolumnsに名前を再度与え、消そうとしています。が消せません。
Python
1(base) C:\Users\detec>python 2Python 3.7.7 (default, Mar 23 2020, 23:19:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32 3Type "help", "copyright", "credits" or "license" for more information. 4>>> import pandas as pd 5>>> col_names = [ 'c{0:02d}'.format(i) for i in range(10) ] 6>>> dfs = pd.read_csv( 'C:/Users/detec/Desktop/coronaHyogo.csv', sep='\t', names=col_names) 7>>> dfs2 =dfs.drop(columns=['c01','c02','c03','c04','c05','c06','c07','c08','c09']) 8>>> dfs2 = dfs2['c00'].str.split(',', expand=True) 9>>> print(dfs2) 10 0 1 2 3 4 5 6 7 110 番号 年代 性別 居住地 職業 発表日 備考 None 121 202 60 男性 神戸市 自営業 4月5日 None 132 201 60 男性 神戸市 無職 4月5日 None 143 200 60 女性 神戸市 無職 4月5日 None 154 199 40 男性 神戸市 会社員 4月5日 None 16.. ... .. .. ... ... ... ... ... 17201 48 5 40 男性 姫路市 会社員 3月6日 18202 49 4 50 女性 福崎町 無職 3月5日 19203 50 3 40 女性 神戸市 会社員 3月3日 20204 51 2 40 男性 神戸市 会社員 3月3日 21205 52 1 40 男性 西宮市 会社員 3月1日 22 23[206 rows x 8 columns] 24 25>>> dfs2.columns = ["番号","年代","性別","居住地","職業","発表日","備考","aa" 26>>> dfs2.head 27<bound method NDFrame.head of 番号 年代 性別 居住地 職業 発表日 備考 aa 280 番号 年代 性別 居住地 職業 発表日 備考 None 291 202 60 男性 神戸市 自営業 4月5日 None 302 201 60 男性 神戸市 無職 4月5日 None 313 200 60 女性 神戸市 無職 4月5日 None 324 199 40 男性 神戸市 会社員 4月5日 None 33.. ... .. .. ... ... ... ... ... 34201 48 5 40 男性 姫路市 会社員 3月6日 35202 49 4 50 女性 福崎町 無職 3月5日 36203 50 3 40 女性 神戸市 会社員 3月3日 37204 51 2 40 男性 神戸市 会社員 3月3日 38205 52 1 40 男性 西宮市 会社員 3月1日 39 40>>> dfs2 = dfs2.drop(columns="aa") 41>>> dfs2.head 42<bound method NDFrame.head of 番号 年代 性別 居住地 職業 発表日 備考 430 番号 年代 性別 居住地 職業 発表日 備考 441 202 60 男性 神戸市 自営業 4月5日 452 201 60 男性 神戸市 無職 4月5日 463 200 60 女性 神戸市 無職 4月5日 474 199 40 男性 神戸市 会社員 4月5日 48.. ... .. .. ... ... ... ... 49201 48 5 40 男性 姫路市 会社員 3月6日 50202 49 4 50 女性 福崎町 無職 3月5日 51203 50 3 40 女性 神戸市 会社員 3月3日 52204 51 2 40 男性 神戸市 会社員 3月3日 53205 52 1 40 男性 西宮市 会社員 3月1日 54 55[206 rows x 7 columns]> 56>>> DataFrame.set_index("番号", inplace = True) 57Traceback (most recent call last): 58 File "<stdin>", line 1, in <module> 59NameError: name 'DataFrame' is not defined 60>>> from pandas import Dataframe 61Traceback (most recent call last): 62 File "<stdin>", line 1, in <module> 63ImportError: cannot import name 'Dataframe' from 'pandas' (C:\Users\detec\Anaconda3\lib\site-packages\pandas\__init__.py) 64>>> from pandas import DataFrame 65>>> DataFrame.set_index("番号", inplace = True) 66Traceback (most recent call last): 67 File "<stdin>", line 1, in <module> 68TypeError: set_index() missing 1 required positional argument: 'keys' 69>>> DataFrame.set_index(0, inplace = True) 70Traceback (most recent call last): 71 File "<stdin>", line 1, in <module> 72TypeError: set_index() missing 1 required positional argument: 'keys' 73>>> print(dfs2.header) 74Traceback (most recent call last): 75 File "<stdin>", line 1, in <module> 76 File "C:\Users\detec\Anaconda3\lib\site-packages\pandas\core\generic.py", line 5274, in __getattr__ 77 return object.__getattribute__(self, name) 78AttributeError: 'DataFrame' object has no attribute 'header' 79>>> 80 81 82
あなたの回答
tips
プレビュー