Панды читают мультииндексный фрейм данных (обратный to_string ())

Я думаю, что здесь нет необходимости использовать метод getfilter ()

ArrayList<YourDataModel> data;
.
.
.
Collections.sort(data, new Comparator<YourDataModel>() {
@Override
public int compare(YourDataModel data1, YourDataModel data2) {
      if( data1.getDistance() < data2.getDistance() )
         return 1;
      else
         return 0;
}
});
.
.
.
ListView lvData = (ListView) findViewById(R.id.listview1);
MyCustomAdapter adapter = new MyCustomAdapter(this, R.layout.listview_item_row, data);
lvData.setAdapter(adapter);

и использовать метод notifydatachange, когда вы хотите его обновить

2
задан Hyperplane 6 March 2019 в 14:35
поделиться

2 ответа

Используйте read_fwf и задайте имена столбцов по списку:

df = pd.read_fwf('file.csv', header=[0,1])
df.columns = [y for x in df.columns for y in x if not 'Unnamed' in y]

#replace missing values by first column
df.iloc[:, 0] = df.iloc[:, 0].ffill().astype(int)
#set first 2 columns to MultiIndex
df = df.set_index(df.columns[:2].tolist())
print (df)
             col1    col2
idx1 idx2                
1    1     0.1234  0.2345
     2     0.4567  0.2345
     3     0.1244  0.5332
2    1     0.4213  0.5233
     2     0.5423  0.5423
     3     0.5235  0.6233
0
ответ дан jezrael 6 March 2019 в 14:35
поделиться

Я остановился на небольшом изменении кода Джезраэля, который автоматически заботится о количестве индексов. Обратите внимание, что df.columns изначально имеет вид [(x1,y1), (x2,y2), ..., (xn, yn)], где n - количество столбцов, xi - метка столбца i в первой строке заголовка, а yi - одна из вторая строка заголовка.

df = pandas.read_fwf(f, header=[0,1])
cols = [x for x,_ in df.columns if 'Unnamed' not in x]
idxs = [y for _,y in df.columns if 'Unnamed' not in y]
df.columns = idxs + cols
df[idxs] = df[idxs].ffill()
df.set_index(idxs, inplace=True)
0
ответ дан Hyperplane 6 March 2019 в 14:35
поделиться
Другие вопросы по тегам:

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