7

一部のR データセットは、Pandas DataFrame または Panelに非常に簡単にロードできます。

import pandas.rpy.common as com
infert = com.load_data('infert')
print(infert.head())

これは、R データセットの次元が <= 3 である限り機能するようです。より高い次元のデータセットでは、エラー メッセージが出力されます。

In [67]: com.load_data('Titanic')
Cannot handle dim=4

このエラー メッセージは、rpy/common.py _convert_array関数に由来します。

確かに、Pandas が 4 次元マトリックスを DataFrame または Panel に直接シューホーンできないことは理にかなっていますがTitanic、DataFrame のようなデータセットを (おそらく階層インデックスを使用して) ロードするための回避策はありますか?

4

2 に答える 2

6

reshapeパッケージをインストールした後、@joranの非常に役立つ提案を使用して

% sudo R
R> install.packages('reshape')

Titanic以下を使用して、データセットを Pandas DataFrame に読み込むことができました。

import pandas as pd
import pandas.rpy.common as com
import rpy2.robjects as ro

r = ro.r
r('library(reshape)')
df = com.convert_robj(r('melt(Titanic)'))
print(df.head())

印刷した

  Class     Sex    Age Survived  value
1   1st    Male  Child       No      0
2   2nd    Male  Child       No      0
3   3rd    Male  Child       No     35
4  Crew    Male  Child       No      0
5   1st  Female  Child       No      0
于 2013-09-26T22:10:15.380 に答える
1

Pandas バージョン0.13.0以降では、次pandas.rpy.common.load_dataのような高次元のデータセットを読み込むことができますTitanic

import pandas.rpy.common as com
df = com.load_data('Titanic')
print(df.head())

収量

  Survived    Age     Sex Class value
0       No  Child    Male   1st   0.0
1       No  Child    Male   2nd   0.0
2       No  Child    Male   3rd  35.0
3       No  Child    Male  Crew   0.0
4       No  Child  Female   1st   0.0
于 2014-01-21T14:57:47.677 に答える