DataSource для пользовательского элемента управления

Производительность, вот в чем проблема с циклами и Python. Я предлагаю вам изменить свой метод. У вас есть два входных кадра данных: -table (col1 col2) -table1 (col1_1 col2_1)

Вы хотите вычесть col1 с col1_1, col2 с col2_1 и сравнить значения с порогом d и добавить 4 столбца внутри выходной фрейм данных.

Вот метод без зацикливания, и панды

import pandas as pd 

table = pd.DataFrame(data= {'col1': [1, 2,3,4,5], 'col2': [6,7,8,9,10]})
table1 = pd.DataFrame(data= {'col1_1': [0.5, 0.2,0.3,0.9,0.9], 'col2_1': [5.1,5.2,4.5,5.4,8.5]})

print(table)
print(table1)
   col1  col2
0     1     6
1     2     7
2     3     8
3     4     9
4     5    10
   col1_1  col2_1
0     0.5     5.1
1     0.2     5.2
2     0.3     4.5
3     0.9     5.4
4     0.9     8.5


## 1. Join the 2 tables 
join = table.join(table1)
print(join)
   col1  col2  col1_1  col2_1
0     1     6     0.5     5.1
1     2     7     0.2     5.2
2     3     8     0.3     4.5
3     4     9     0.9     5.4
4     5    10     0.9     8.5



## 2. create a new columns with substraction 
join["del1"] = abs(join['col1'] - join['col1_1'])
join["del2"] = abs(join['col2'] - join['col2_1'])
print(join)
   col1  col2  col1_1  col2_1  del1  del2
0     1     6     0.5     5.1   0.5   0.9
1     2     7     0.2     5.2   1.8   1.8
2     3     8     0.3     4.5   2.7   3.5
3     4     9     0.9     5.4   3.1   3.6
4     5    10     0.9     8.5   4.1   1.5



## 3. filter with threshold 
d = 2 
final_df = join[(join.del1 < d) & (join.del2 <d)]
print(final_df)
   col1  col2  col1_1  col2_1  del1  del2
0     1     6     0.5     5.1   0.5   0.9
1     2     7     0.2     5.2   1.8   1.8
8
задан Joel Coehoorn 25 January 2009 в 21:03
поделиться

1 ответ

Более легкая опция может состоять в том, чтобы использовать поставщика атрибута вместо этого:

[AttributeProvider(typeof(IListSource))]

Вы могли попытаться использовать полностью определенное имя блока? и определение редактора?

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]

На самом деле можно сократить это для версии только путем определения блока:

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")]
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design", typeof(UITypeEditor))]
5
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: