列に対してはpandas.DataFrame.insert
が用意されていますが、行に対しては用意されていません。
すでにおやりになっている「元のデータフレームをスライスして、間に1行追加されるようにconcat
する」とか、
「元のデータフレームをスライスして、間に1行追加されるようにappend
する」とか、
「元のデータフレームを転置して、1列追加されるようにinsert
して、再度転置する」などするしかありません。
Python
1import pandas as pd
2import io
3
4txt = """
5id,name,value
61,hoge,100
72,fuga,200
83,boke,300
9"""
10
11df = pd.read_csv(io.StringIO(txt))
12# print(df)
13
14idx = 1 # 挿入位置(0オリジンのindexに対して)
15lst = [4, "XXX", 400] # 挿入するデータのリスト
16
17df2 = pd.concat([df[:idx], pd.DataFrame([lst], columns=df.columns), df[idx:]]).reset_index(drop=True)
18print(df2)
19
20df3 = df.iloc[:idx, ].append(pd.Series(lst, index=df.columns), ignore_index=True).append(df.iloc[idx:, ]).reset_index(drop=True)
21print(df3)
22
23dft = df.T
24dft.insert(idx, None, [4, "XXX", 400])
25df4 = dft.T.reset_index(drop=True)
26print(df4)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。