, если ваша цель - пропустить свойства, которые не являются частью вашей сборки, просто проверьте свое имя сборки на тип отраженного свойства
var properties= typeof(Sample).GetProperties();
var myAssembly = Assembly.GetCallingAssembly().FullName;
foreach(var prop in properties)
{
if (Assembly.GetAssembly(prop.PropertyType).FullName.Equals(myAssembly))
Console.WriteLine(prop.Name);// this belongs to your assembly
}
Делает ли это то, что вам нужно?
def make_sample():
test=np.full((8,12), np.nan)
test[0,:6]=np.arange(6)
test[1,6:]=np.arange(6,18,2)
test[4:6,:]=2*test[:2,:]
return test
test=make_sample()
In [74]: test
Out[74]:
array([[ 0., 1., 2., 3., 4., 5., nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan, 6., 8., 10., 12., 14., 16.],
[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan],
[ 0., 2., 4., 6., 8., 10., nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan, 12., 16., 20., 24., 28., 32.],
[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]])
Создать массив, чтобы определить, какие строки НЕ являются всеми nans
filt=1^np.isnan(test).all(axis=1)
In [78]: filt
Out[78]: array([1, 1, 0, 0, 1, 1, 0, 0])
Использовать массив tat для сжатия теста в строки, которые all nans
compress=np.compress(filt, test, axis=0)
In [80]: compress
Out[80]:
array([[ 0., 1., 2., 3., 4., 5., nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan, 6., 8., 10., 12., 14., 16.],
[ 0., 2., 4., 6., 8., 10., nan, nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan, nan, 12., 16., 20., 24., 28., 32.]])
Установить наны на ноль
compress[np.isnan(compress)]=0
In [83]: compress
Out[83]:
array([[ 0., 1., 2., 3., 4., 5., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 6., 8., 10., 12., 14., 16.],
[ 0., 2., 4., 6., 8., 10., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 12., 16., 20., 24., 28., 32.]])
Добавить нечетные к четным строкам
In [84]: compress[::2,:]+compress[1::2,:]
Out[84]:
array([[ 0., 1., 2., 3., 4., 5., 6., 8., 10., 12., 14., 16.],
[ 0., 2., 4., 6., 8., 10., 12., 16., 20., 24., 28., 32.]])
Ваше полное решение приведено ниже: убедитесь, что структура вашего информационного кадра правильная.
Сначала вы разбиваете столбцы данных на две части. В вашем случае 1-11, 12-21.
your_df=pd.read_csv(...)
columns1=list(range(12))
columns2=list(range(12,22))
df1=your_df[columns1].dropna()
df2=your_df[columns2].dropna().reset_index(drop=True)
df_new=pd.concat([df2,df3], axis=1)
Посмотрите на это. https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
df.dropna (args ..). Это то, что вы после.
Если вы загрузили данные в фрейм данных с помощью Pandas, вы можете использовать df.dropna()
, где df = pd.DataFrame(<your_data_here>)
Также вы можете передавать параметры, как показано ниже:
df.dropna(how='any') #to drop if any value in the row has a nan
df.dropna(how='all') #to drop if all values in the row are nan