【发布时间】:2018-03-08 22:23:02
【问题描述】:
我有一个数据框(220 行 × 2 列)和一个值列表 [41、84、129、174、219、45]。我想在我的列表中指定的索引位置下方的数据框中插入新行(包含 -999、-999)。举个例子。
40 400 -47.595322
41 410 13.159509
42 0 -235.865433
43 8 -102.183365
会变成:
40 400 -47.595322
41 410 13.159509
42 -999 -999
43 0 -235.865433
44 8 -102.183365
等等等等……
谢谢:)
到目前为止我所拥有的:
import pandas as pd
import numpy as np
import glob
path =r'MyPath'
allFiles = glob.glob(path + "/*.dat")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
df = pd.read_csv(file_, delim_whitespace=True, index_col=None, header=None)
list_.append(df)
frame = pd.concat(list_)
frame.columns = ['age', 'dt']
frame = frame.reset_index(drop=True)
idx = [] + list(frame['age'][frame['age'] == 410].index) + [df.index[-1]+1]
idx = np.array(idx)
df = pd.DataFrame(
np.insert(frame.values, idx + 1, -999, axis=0), columns=frame.columns)
print(df.to_string())
【问题讨论】:
标签: list pandas dataframe insert row