1
sample.py
import pandas as pd
s1 = pd.Series([10, 40, 80, 120])
# print(s1)
2
sample.py
import pandas as pd
df1 = pd.DataFrame({
"name":["tom", "bob", "yuki"],
"age": [42, 29, 34],
"sex": ["man", "man", "woman"]
})
print(df1)
3
sample.py
import pandas as pd
# 対象データ
# 次のhttp://aiacademy.jp/dataset/sns_data.csvからsns_data.csvをダウンロードして、このプログラムを実行するファイルと同じ場所に配置してください。
url = './sns_data.csv'
df = pd.read_csv(url)
# 日本語の処理は複雑になることが多いので、ヘッダー行を置換
df.columns = ['user_id','follow','follower', 'like']
df.to_csv('output.csv', index = False)
カラム名を変えるには、rename()
を用いても可能です。
df.rename(columns = {"ユーザーID":"user_id"}, inplace = True)
複数のカラム名をまとめて変更することも可能です。
df.rename(columns = {"フォロー":"follow_id", "フォロワー": "folower", "いいね": "good"}, inplace = True)
4 5 6 7 8
sample.ipynb
"""
4.d1 = {"data1": ["a","b","c","d","c","a"], "data2": range(6)}
を使って、df1という名前のDataFrameを作ってください。
5. 4で作ったデータフレームをcsvファイル(.csv)とエクセルファイル(.xlsx)に書き出してください。
6. 5で作成されたcsvファイル(.csv)を読み込んでください。
7. 5で作成されたエクセルファイル(.xlsx)を読み込んでください。
8. 7に対してappendを使い、新しい列(カラム)data3を追加し、以下の行を追加してください。
data3カラムに追加する行のデータは以下とします。
["b","b","c","d","a","a"]
なお、appendの第2引数には、ignore_index=Trueを指定してください。
"""
import pandas as pd
from pandas import DataFrame
import numpy as np
# 4
d1 = {"data1": ["a","b","c","d","c","a"], "data2": range(6)}
df1 = DataFrame(d1)
# 5
df1.to_csv("kadai.csv") # csvの書き込み
df1.to_excel("kadai.xlsx",encoding='utf8') # csvの書き込み
# 6
c = pd.read_csv("kadai.csv")
# print(c)
# 7
e = pd.read_excel("kadai.xlsx")
# print(e.columns)
# print(e.index)
# 8
e["data3"] = ["b","b","c","d","a","a"]
# print(len(e.index))
# print(e)
s = pd.Series([0, "c", 12, "b"], index=e.columns)
print(s)
e.append(s, ignore_index=True)
print(e)
↑上記の警告文を非表示にするために
警告文に従い、pd.concat()を使ってデータフレームに行を追加し、以下のようにコードを修正できます。
# 仮のデータフレームeを作成
data = {
"0" : [0, 1, 2, 3, 4, 5],
"data1": ["a", "b", "c", "d", "c", "a"],
"data2": [0, 1, 2, 3, 4, 5],
"data3": ["b", "b", "c", "d", "a", "a"]
}
e = pd.DataFrame(data)
# 追加する行をpd.Seriesで作成
s = pd.Series([0, "c", 12, "b"], index=e.columns)
# pd.concat()を使って、元のデータフレームeと新しい行sを結合
result = pd.concat([e, s.to_frame().T], ignore_index=True)
result