2017-11-27 15 views
1

私はリストを持っています(Yと呼ぶこともできます)。サイズは(1080,1)です。また、リストYの名前を含むインデックスを持つサイズ(700,20)のデータフレーム(Xと呼ぶこともできます)があります。つまり、Yに含まれていない名前はデータフレームにありませんが、データフレームに含まれていない今私がしたいのは、Yに名前が入っていない空の行をXに挿入することです。したがって、すべての列に空の値を持つ新しい行を追加したいと思います。データフレームにはまだ含まれていません。リストに基づいてデータフレームに名前付き行を挿入するpandas

+0

サンプルX、Yが役に立ちます。多分あなたは 'reindex'を探しています – Dark

+0

作業にサンプルデータが必要です。 – Dark

+1

'print(X.head())'を追加してください – Dark

答えて

0

これは何について:私は少し

import pandas as pd 
import numpy as np 
df1 = pd.DataFrame({"name":["Marc Green", "Eric White", "Carl Red"], "x":np.arange(3)}) 
Y = ["Marc", "Eric", "Anna","Carl"] 
df2 = pd.DataFrame({"name":Y}) 
df = pd.concat([df1, df2[~df2["name"].isin(df1["name"].str[:4])]]) 

更新(代わりに10の最初の4つの文字を除く)あなたのケースに合わせて私の例を修正

import pandas as pd 
import numpy as np 
df1 = pd.DataFrame({"name":["Marc", "Eric", "Bob"], "x":np.arange(3)}) 
Y = ["Marc", "Eric", "Bob","Carl"] 
df2 = pd.DataFrame({"name":Y}) 
df = pd.concat([df1, df2[~df2["name"].isin(df1["name"])]]) 

アップデート2 あなたのケースでは、データフレームXの名前が-に分かれているので、t彼のソリューション

df1 = pd.DataFrame({"name":["Marc - Green", "Eric - White", "Carl - Red"], "x":np.arange(3)}) 
Y = ["Marc", "Eric", "Anna","Carl"] 
df2 = pd.DataFrame({"name":Y}) 
df = pd.concat([df1, df2[~df2["name"].isin(df1["name"].str.split("-").apply(lambda x:x[0].strip()))]]) 

あなたはそれが他を支援するために簡単ですので、あなたがテキスト形式でのデータの一例を提供する場合の質問は良いです尋ねるとき、他の人がすでに、コメントとして注意

+0

私はあなたが答えを受け入れるべきだと思います。あなたはあなたの特定の問題に対処する必要がありますが、提供されるソリューションは一般的なケースを解決します。 – user32185

関連する問題