こんにちは。
Python Pandas 毎回列数の違うCSVを取り込んで固定の列数で尚且つ列名を修正して書き出したいと考えています。
1.csv
品名,A,B,C,D,E,
りんご,12,30,20,30,,
みかん,18,40,28,30,10,
りんご,12,30,20,30,,
ぶどう,55,30,20,62,,
のようなCSVがあり、
pandasで読み込んで、列名を
df.columns = ['品名','店名A', '店名B', '店名C', '店名D', '店名E']
とすると
品名,店名A,店名B,店名C,店名D,店名E
りんご,30,20,30,NaN,NaN,
みかん,18,40,28,30,10,
ぶどう,30,20,30,NaN,NaN,
バナナ,30,20,62,NaN,NaN,
しかし元のCSVが、
別の列数が少ない1.csv
品名,A,B,C
りんご,30,20,30
みかん,18,40,28
ぶどう,30,20,30
バナナ,30,20,62
だと、
df.columns = ['品名','店名A', '店名B', '店名C', '店名D', '店名E']
とすると
ValueError: Length mismatch: Expected axis has 4 elements, new values have 6 elements
本来4列のデータなのに6列で指定しているからエラーですよと言っているのはなんとなく解るのですが、
取り込みたいCSVの列が毎回一定列数ではなく、なおかつ出力は'品名','店名A', '店名B', '店名C', '店名D', '店名E'のように
品名,店名A,店名B,店名C,店名D,店名E
りんご,30,20,30,NaN,NaN,
みかん,18,40,28,NaN,NaN,
ぶどう,30,20,30,NaN,NaN,
バナナ,30,20,62,NaN,NaN,
の6列で固定したいのですが、df['店名D','店名E']などで列を2つ増やすとしても3列の場合もあれば2列の場合もありそうすると結局Length mismatch:のエラーになってしまうのでその考え方は的外れなのはわかります…
こういった場合どのようにすればいいのでしょうか?
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/13 23:59 編集
2021/05/14 03:57
2021/05/14 05:02