Как создать фрейм данных pandas из двух списков

#python #pandas

Вопрос:

У меня есть набор данных, как показано ниже:

 campaign_name,campaign_team
edbol97,other
abc_de_dg,other
de_air,other 
 

Из этого я должен выбрать campaign_name , где содержатся записи "_" . Теперь я хочу разделить подчеркивание, содержащее записи, на слова. Я смог это сделать, но я хочу получить результат, как показано ниже:

введите описание изображения здесь

Ниже приведен мой код:

 splittedString = list()
campaign_name = list()
df = pandas.DataFrame()
for i in underscoreList:
    campaign_name.append(i)
    splittedString.append(i.split("_"))
    #a_dict= {"campaign_name":campaign_name,"campaign_name1":splittedString}
    df["campaign_name"]=campaign_name
    df["campaign_name1"]=splittedString
print(splittedString)
print(campaign_name)
print(df)
 

Однако это приводит меня к следующей ошибке:

 File "/home/siddhesh/Downloads/pyspark/src/sample/exact_match.py", line 38, in <module>
    df["campaign_name"]=campaign_name
  File "/home/siddhesh/Downloads/pyspark/venv/lib/python3.8/site-packages/pandas/core/frame.py", line 3607, in __setitem__
    self._set_item(key, value)
  File "/home/siddhesh/Downloads/pyspark/venv/lib/python3.8/site-packages/pandas/core/frame.py", line 3779, in _set_item
    value = self._sanitize_column(value)
  File "/home/siddhesh/Downloads/pyspark/venv/lib/python3.8/site-packages/pandas/core/frame.py", line 4504, in _sanitize_column
    com.require_length_match(value, self.index)
  File "/home/siddhesh/Downloads/pyspark/venv/lib/python3.8/site-packages/pandas/core/common.py", line 531, in require_length_match
    raise ValueError(
ValueError: Length of values (2) does not match the length of index (1) 
 

Я новичок в Питоне и пандах. Как я могу устранить эту ошибку?

Ответ №1:

Вы можете использовать .explode() для этого:

 df['campaign_name1'] = df['campaign_name'].str.split('_')
df.explode('campaign_name1')
 

Комментарии:

1. @RushHour Рад, что смог помочь. Счастливого Кодирования!