создать столбец путем объединения индекса #, строки - PullRequest
1 голос
/ 07 октября 2019

У меня есть датафрейм, содержащий столбец строк. Я хочу создать новый столбец, который объединяет индексный номер и строковый столбец вместе в понимании списка. Следующий код выполняет эту операцию, повторяя цикл:

df=pd.DataFrame({'strings': ['string1','string2','string3']})
new_col=[]
for i in df['strings'].index.values:
    new_col.append(str(i)+','+df['strings'][i])
df['new_col']=new_col

Выше код работает, но медленно. Как я могу сделать это в понимании списка?

Ответы [ 4 ]

2 голосов
/ 07 октября 2019

Вы можете преобразовать индекс в строку и добавить как обычно (массивы) строки:

df['new_col'] = df['strings'].index.astype(str) + ',' + df['strings']

Вывод:

   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3
1 голос
/ 07 октября 2019

Если вы хотите список пониманий , тогда я бы рекомендовал использовать zip()

import pandas as pd
df=pd.DataFrame({'strings': ['string1','string2','string3']})
df['new_col'] = [str(y)+','+str(x) for x,y in zip(df['strings'],df.index.values.astype(int))]
print(df)

Вывод:

   strings    new_col
0  string1  0,string1
1  string2  1,string2
2  string3  2,string3
0 голосов
/ 07 октября 2019

Сбросить индекс, а затем с помощью столбца создать новый столбец

df=df.reset_index()
df['new_col']=df['index'].astype(str)+','+df['strings']
0 голосов
/ 07 октября 2019

Это даст новый столбец с индексом плюс ваш строковый столбец

df['new'] = df.index.astype(str) + df['strings']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...