回答編集履歴

1

2022/01/14 03:28

投稿

melian
melian

スコア19825

test CHANGED
@@ -1,9 +1,14 @@
1
- `csv.reader` ではなく、`pandas.read_csv` を使っみてはどうでょうか
1
+ > 記載していただいた通りに実行すると error: Expected 33 fields in line 4, saw 34 というようなエラーが出てしまいます
2
+
3
+ 1 行当たりの列数が異なっている CSV データですので、まずは 1 行全てを 1 列として読み込んでから分割します。それから、数値に変換可能なデータを全て変換します。
2
4
  ```python
3
5
  import pandas as pd
4
6
 
5
- df = pd.read_csv('./data.csv', encoding='shift_jis')
7
+ df = pd.read_csv('./data.csv', sep='\n', header=None, prefix='X', encoding="shift-jis")
8
+ df = df.X0.str.split(',', expand=True).fillna('')
9
+ df.columns = df.iloc[0]
10
+ df = df[1:]
11
+ df = df.applymap(lambda x: pd.to_numeric(x, errors='ignore', downcast='signed'))
6
12
  print(df)
7
13
  df.to_excel('excel-data.xlsx', encoding='utf-8')
8
14
  ```
9
-