Как создать пустые ячейки в пандах, которые R распознает как пустые, используя rpy2? - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь выполнить операции ниже, которые работают нормально, за исключением проблемы с R, не распознающей пустые ячейки как пустые. Эта ошибка появляется, когда R жалуется, что существует более двух факторов; R считает, что клетки, помеченные как 'nan', на самом деле не пусты.

# Set up the df
d = {'col1': [1, 2, 3, 4, 3, 3, 2, 2], 'col2': [1, 2, 3, 4, 3, 3, 2, 2]}
df = pd.DataFrame(data=d)
df['valence_median_split'] = ''

#Get median of valence
valence_median = df['col1'].median()
df['valence_median_split'] = np.where(df['col2'] < valence_median, 'Low_Valence', 'High_Valence')
df['temp_selection'] = np.nan
low = df.loc[df['valence_median_split'] == 'Low_Valence', 'valence_median_split'].sample(n=2).index
high = df.loc[df['valence_median_split'] == 'High_Valence', 'valence_median_split'].sample(n=2).index
df['temp_selection'] = np.select([df.index.isin(low), df.index.isin(high)], ['Low', 'High'], default= np.nan)

# Push it to R and run a t-test
%Rpush df
%R colnames(df)
%R All_Valence_Mean_Res <- t.test(col2 ~ temp_selection, data = df, var.equal = TRUE)

Ошибка:

Error in t.test.formula(col2 ~ temp_selection, data = df, var.equal = TRUE) : 
  grouping factor must have exactly 2 levels

Проверка в python, что df действительно имеет более 2 уникальных значений:

df['temp_selection'].unique()
array(['Low', 'nan', 'High'], dtype=object)

Я попытался установить df ['valence_median_split'] в '' ', а также np.nan, и оба, похоже, создают эту проблему в R.

1 Ответ

0 голосов
/ 31 марта 2019

Это достаточно мало, вы можете посмотреть весь df:

In [821]: df                                                                    
Out[821]: 
   col1  col2 valence_median_split temp_selection
0     1     1          Low_Valence            nan
1     2     2          Low_Valence            nan
2     3     3         High_Valence            nan
3     4     4         High_Valence            nan
4     3     3         High_Valence           High
5     3     3         High_Valence           High
6     2     2          Low_Valence            Low
7     2     2          Low_Valence            Low

В каком смысле значение nan считается «пустым»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...