Как я могу выбрать группу столбцов на основе ввода CSV, в python? - PullRequest
0 голосов
/ 03 апреля 2020

Я сделал выбор для извлечения моих данных, используя pandas dataframe:

X = goog_data[['SPY', 'PCTChange', 'HiLo', 'ClOp', 'Lag1', 'std_30', 'std_5', 'std_15','std_100','std_200','ret_5','Pairstd5','Pairret1','Pairret5','Pairret15','Pairret30','Pairret100','Pairret100','Pairstd15','Pairstd30','Pairstd100','Pairstd200']]

Теперь это можно было сделать вручную. Теперь я хочу, чтобы X содержал 5 тыс. Столбцов. Как я могу создать цикл / запрос, чтобы сказать CSV, чтобы прикрепить все эти столбцы? (У меня есть все имена столбцов в CSV)

С уважением

1 Ответ

2 голосов
/ 04 апреля 2020

Я разработаю решение, я не совсем уверен, если это то, что вы хотите, но если это то, что я думаю, решение должно просто прочитать файл столбцов и преобразовать его в список. представьте, что в качестве входных данных у нас есть две вещи: информационный кадр с 5 тыс. столбцов и CSV-файл с именем столбцов, которые мы хотим сохранить в отдельном csv:

DataFrame:

       col0      col1      col2    ...      col4997   col4998   col4999
0  0.698623  0.932956  0.359868    ...     0.829051  0.841925  0.984595
1  0.096496  0.438520  0.324643    ...     0.045311  0.960287  0.595798
2  0.255850  0.880708  0.944889    ...     0.490338  0.310711  0.002752
3  0.950205  0.322112  0.283922    ...     0.211629  0.996797  0.614626
4  0.211844  0.580730  0.323031    ...     0.465663  0.348202  0.872415

CSV ( columns.csv) со столбцами, которые я хочу:

col1,col2,col513,col4153,col4900,col5000

тогда:

import pandas as pd
import random
df_with5k_columns = pd.DataFrame({f"col{i}":[random.random() for _ in range(5)] for i in range(5000)})

with open("columns.csv") as columns_file:
    columns_to_select = columns_file.read().replace("\n","").split(",")
    df_selected_columns = df_with5k_columns.loc[:,columns_to_select]
    print(df_selected_columns)

сгенерирует это:

       col1      col2    col513   col4153   col4900   col4952
0  0.037199  0.413641  0.790565  0.181794  0.678537  0.147004
1  0.218754  0.589376  0.138483  0.197163  0.567846  0.495609
2  0.971128  0.011847  0.015084  0.134676  0.459204  0.511046
3  0.490421  0.954400  0.524425  0.564901  0.223476  0.082343
4  0.377118  0.306438  0.651674  0.896337  0.130425  0.815342
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...