Как получить Положение и Имя Индекса Панд - PullRequest
0 голосов
/ 02 сентября 2018

Я искал, чтобы получить имена и индексную позицию в панде DataFrame, и начал понимать логику, как показано ниже: Просто интересно, есть ли лучший способ справиться с этим.

import pandas as pd

df = pd.read_csv('/docs/Credit_Card.csv', encoding='ISO-8859-1')
cols = df.columns
col = [df.columns.get_loc(c) for c in df.columns if c in cols]
print(pd.DataFrame(list(zip(cols, col)),columns=['index_Name', 'Index_Number']))

вывод результата:

             index_Name  Index_Number
0        Card Type Code             0
1   Card Type Full Name             1
2          Issuing Bank             2
3           Card Number             3
4    Card Holder's Name             4
5              CVV/CVV2             5
6            Issue Date             6
7           Expiry Date             7
8          Billing Date             8
9              Card PIN             9
10         Credit Limit            10

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Используйте dict {name: column_names: number: column_numering} для создания datafarme.

In [591]: pd.DataFrame({'index_Name': df.columns, 'Index_Number': range(len(df.columns))})
Out[591]:
             index_Name  Index_Number
0        Card Type Code             0
1   Card Type Full Name             1
2          Issuing Bank             2
3           Card Number             3
4    Card Holder's Name             4
5              CVV/CVV2             5
6            Issue Date             6
7           Expiry Date             7
8          Billing Date             8
9              Card PIN             9
10         Credit Limit            10

Или используйте

In [621]: pd.DataFrame({'index_Name': df.columns}).rename_axis('index_Number').reset_index()
Out[621]:
             index_Name  Index_Number
0        Card Type Code             0
1   Card Type Full Name             1
2          Issuing Bank             2
3           Card Number             3
4    Card Holder's Name             4
5              CVV/CVV2             5
6            Issue Date             6
7           Expiry Date             7
8          Billing Date             8
9              Card PIN             9
10         Credit Limit            10
0 голосов
/ 02 сентября 2018

Использование:

import numpy as np

print(pd.DataFrame(list(zip(df.columns, 
                            np.arange(len(df.columns)))),
                   columns=['index_Name', 'Index_Number']))

Аналогично numpy.c_:

print(pd.DataFrame(np.c_[df.columns, np.arange(len(df.columns))],
                   columns=['index_Name', 'Index_Number']))

Или:

df1 = pd.Series(df.columns).reset_index()
df1.columns = ['Index_Number','index_Name']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...