コード一覧

【Python】CSVを開いてエクセルに貼り付ける方法

CSVを開いてエクセルに貼り付ける方法

ダウンロードしてきたCSVを開いて、別のエクセルに貼り付ける方法。

# -*- coding: utf-8 -*-
import pandas as pd
import openpyxl

# csvファイルを読み込む
frame = pd.read_csv(r"C:\Users\oono\Desktop\aaaa.csv",encoding='Shift_JIS')

# エクセルファイルに書き込む
writer = pd.ExcelWriter(r"C:\Users\oono\Desktop\aaaa.xlsx")
frame.to_excel(writer,'Sheet1',index=False) # header=False

# 保存
writer.save()

popenpyxlをimportする

import openpyxl

No module named 'openpyxl'が出たら、モジュールをインストールする必要があるので以下のコマンドでインストールする。

pip install openpyxl

pandasをimportする

import pandas as pd

Initializing from file failed というエラーがでたら、anacondaを使っているが、古いかもなので、以下のコマンドでアップロードする。

pip install -U pandas

csvの開き方

# csvファイルを読み込む
frame = pd.read_csv(r"C:\Users\oono\Desktop\aaaa.csv",encoding='Shift_JIS')

encodingをなしにしたり、utf-8にしたらエラーが出た。
'utf-8' codec can't decode byte 0x8c in position 0: invalid start byte
Shift_JISか、cp932 にしたらうまくいった。

エクセルへの書き込み

# エクセルファイルに書き込む
writer = pd.ExcelWriter(r"C:\Users\oono\Desktop\aaaa.xlsx") 

frame.to_excel(writer,'Sheet1',index=False) # header=False 

# 保存 writer.save()

indexとheaderを付けるか付けないか指定できる。
indexはエクセルの一番左端の列が番号になり、0から順番に行数分番号が付けられる。
headerは列の一番上の項目名を付けるか付けないか。
Falseにしたら、つくかつかないか指定できる。
上記の場合は、index=Falseなので、番号を付けないという指定。