私は次のdf
ようなデータフレームを持っています:
Word Row ID Remark
abc 1 xyz
def 2 xyz
ghi 4 uvw
jkl 5 qrs
mno 7 wxy
欠落している値は別のデータフレームにありdf1
ます:
Word Row ID Remark
pqr 3 uuu
stu 6 vvv
不足している値をのdf1
適切な場所に挿入したいdf1
ので、これが望ましい出力です。
Word Row ID Remark
abc 1 xyz
def 2 xyz
pqr 3 uuu
ghi 4 uvw
jkl 5 qrs
stu 6 vvv
mno 7 wxy
これを行うための私のコードは次のとおりです。
for i in range(len(df1)): # run through each of the missing values
if df2['Row ID'][i] not in range(min(df['Row ID']), df2['Row ID'][i]):
df.loc[-1] = df2.loc[i] # adding a row with -1 index
df.index += 1 # shifting index so that it does not overwrite the current value in that position
df = df.sort_values('Row ID')
しかし、これは、次のように、それを行うための最も効率的な方法ではないと思います。
を使用することでsearchsorted
、個人的にconcat
+sort_values
が問題を解決できると考えます。
df1.index=np.searchsorted(df.RowID.values,df1.RowID.values)
pd.concat([df1,df]).sort_index()
Out[187]:
Word RowID Remark
0 abc 1 xyz
1 def 2 xyz
2 pqr 3 uuu
2 ghi 4 uvw
3 jkl 5 qrs
4 stu 6 vvv
4 mno 7 wxy
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加