質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

1回答

1998閲覧

python pandas 計算結果をcsvの列に追記

huuuuuuu

総合スコア8

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2019/11/13 09:05

pythonのpandasを使用してcsvデータを使用して計算を行い、計算結果をcsvに追記したいです。

python

1import pandas as pd 2 3df = pd.read_csv("list.csv") 4df2 = pd.read_csv("needtime.csv") 5new_file = "list_needtime.csv" 6results = df.merge(df2,on="id") 7results.to_csv(new_file,index=False) 8

上記のスクリプトで作成されたlist_needtime.csvが以下のファイルである時に、
新たな列『cost』を作成し、その中身に『0.33-total_time』の値を出力したいときに上記ファイルにどのように追記したらよろしいでしょうか。

ご教授いただけたら幸いです。

『list_needtime.csv』
id,x,y,total_time
60926,-8941.969874,-45122.21313,0.337304266
60926,-8941.969874,-45122.21313,0.224718083
60926,-8941.969874,-45122.21313,0.201283552
85222,-10719.76729,-43470.4291,0.156064931
85222,-10719.76729,-43470.4291,0.349723335
85222,-10719.76729,-43470.4291,0.285900337
81237,-8664.024773,-43629.69053,0.277924187
81237,-8664.024773,-43629.69053,0.164674301
81237,-8664.024773,-43629.69053,0.236382599
84105,-10236.66981,-44028.98672,0.1785224
84105,-10236.66981,-44028.98672,0.303805644
84105,-10236.66981,-44028.98672,0.208230811
97802,-9698.940734,-44312.66597,0.23124196
97802,-9698.940734,-44312.66597,0.246312806
97802,-9698.940734,-44312.66597,0.144448075
95831,-9110.267303,-44225.65537,0.259271853
95831,-9110.267303,-44225.65537,0.202606374
95831,-9110.267303,-44225.65537,0.181861712
88022,-8466.556894,-44451.5326,0.345955224
88022,-8466.556894,-44451.5326,0.162791666
88022,-8466.556894,-44451.5326,0.23344427
64734,-8596.208675,-45055.87246,0.348783661
64734,-8596.208675,-45055.87246,0.215640611
64734,-8596.208675,-45055.87246,0.212762948
55897,-10958.73994,-43566.02037,0.176328019
55897,-10958.73994,-43566.02037,0.367629679
55897,-10958.73994,-43566.02037,0.294575513

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

import pandas as pd

df = pd.read_csv("list.csv")
df2 = pd.read_csv("needtime.csv")
new_file = "list_needtime.csv"
results = df.merge(df2,on="id")
results.to_csv(new_file,index=False)

df3 = pd.read_csv("list_needtime.csv")
df3["cost"] = (0.33) - df3["total_time"]
df3.to_csv(new_file,index=False)

これで求めることができたのですが、これで間違いないでしょうか?

投稿2019/11/13 09:32

huuuuuuu

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/11/13 12:27

まあいいんじゃないでしょうか。最初からresultに列を追加して書き出してしまうのでも良ければ、そうした方がスマートです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問