3

Pythonのパンダデータフレームについて質問があります。2dfつのサブセットに分割した大きなデータフレームがdf1ありdf2ます。 df1一緒にdf2すべてを構成するわけではなくdf、それらは相互に排他的な2つのサブセットにすぎません。これをrgplotでrpy2を使用してプロットし、変数がからのものか、からのものかに基づいてプロットに変数を表示したいと思いdf1ますdf2。ggplot2にはメルトされたデータフレームが必要なので、この列をggplotに渡すことができるように、各エントリがからであるdf1か、であるかを示す列を持つ新しいデータフレームを作成する必要があります。df2私はこのようにそれをやってみました:

# add labels to df1, df2
df1["label"] = len(df1.index) * ["df1"]
df2["label"] = len(df2.index) * ["df2"]
# combine the dfs together
melted_df = pandas.concat([df1, df2])

これで、次のようにプロットできます。

# plot parameters from melted_df and colour them by df1 or df2
ggplot2.ggplot(melted_df) + ggplot2.ggplot(aes_string(..., colour="label"))

私の質問は、これを行うためのより簡単で簡単な方法があるかどうかです。ggplotは一定の融解/非融解dfsを必要とし、常に手動で融解したフォームをdfの個別のサブセットに追加するのは面倒なようです。ありがとう。

4

1 に答える 1

2

確かにあなたは使用することによって単純化することができます:

df1['label'] = 'df1'

(ではなくdf1["label"] = len(df1.index) * ["df1"]

これを頻繁に行う場合は、独自の関数を作成してみませんか?(このようなもの):

plot_dfs(dfs):
    for i, df in enumerate(dfs):
        df['label'] =  'df%s' % i+1 # note: this *changes* df
    melted_df = pd.concat(dfs)

    # plot parameters from melted_df and colour them by df1 or df2
    ggplot2.ggplot(melted_df) + ggplot2.ggplot(aes_string(..., colour="label"))

    return # the melted_df or ggplot ?
于 2013-02-24T18:03:02.487 に答える