передача & ldquo; это & ​​rdquo; конструктору [дубликат]

Просто использовал превосходный ответ jiln сверху, но ему нужно было расширить, чтобы разделить несколько столбцов. Думаю, я бы поделился.

def splitDataFrameList(df,target_column,separator):
''' df = dataframe to split,
target_column = the column containing the values to split
separator = the symbol used to perform the split

returns: a dataframe with each entry for the target column separated, with each element moved into a new row. 
The values in the other columns are duplicated across the newly divided rows.
'''
def splitListToRows(row, row_accumulator, target_columns, separator):
    split_rows = []
    for target_column in target_columns:
        split_rows.append(row[target_column].split(separator))
    # Seperate for multiple columns
    for i in range(len(split_rows[0])):
        new_row = row.to_dict()
        for j in range(len(split_rows)):
            new_row[target_columns[j]] = split_rows[j][i]
        row_accumulator.append(new_row)
new_rows = []
df.apply(splitListToRows,axis=1,args = (new_rows,target_column,separator))
new_df = pd.DataFrame(new_rows)
return new_df
50
задан Nawaz 12 January 2012 в 20:46
поделиться

4 ответа

Сборщик мусора .Net может абсолютно обрабатывать циклические ссылки. Очень высокий уровень представления о том, как работает сборщик мусора, ...

  • Начните с местных жителей, статики и объектов, закрепленных GC. Ни один из них не может быть собран
  • Отметьте каждый объект, который может быть достигнут путем перемещения детей этих объектов
  • Соберите каждый объект, который не отмечен.

Это позволяет собирать круговые ссылки очень хорошо. Пока ни один из них не может быть достигнут от объекта, который, как известно, является невообразимым, тогда круговая ссылка по существу не имеет значения.

Примечание: я понимаю, что я не упомянул много интересных деталей, чтобы этот ответ был простым и прямым

78
ответ дан JaredPar 23 August 2018 в 22:06
поделиться

Нет, что круговая ссылка не повлияет на сборщик мусора, и она будет вполне способна собрать экземпляр B.

Сборщик мусора знает, что никто не может ссылаться на экземпляр B после того, как он и, следовательно, никто не может использовать экземпляр B для косвенной ссылки A.

5
ответ дан driis 23 August 2018 в 22:06
поделиться

Нет, это не будет проблемой, потому что GC может обрабатывать Circular References

MSDN Says

Если группа объектов содержит ссылки друг на друга, но нет из этих объектов прямо или косвенно ссылаются на стек или общие переменные, тогда сборка мусора автоматически восстанавливает память.

28
ответ дан hunter 23 August 2018 в 22:06
поделиться

Несколько ответов уже объяснили, что круговые ссылки не являются проблемой.

Что касается слабых ссылок - причина их использования - кеширование.

Когда GC ходит по деревьям зависимостей объектов, он игнорирует слабые ссылки. Другими словами, если единственная ссылка на объект является слабым (ым), он будет собираться мусором, но если сбор ссылок между созданием ссылки и вашей попыткой использования невозможен, вы все равно можете получить доступ к объекту.

5
ответ дан mfeingold 23 August 2018 в 22:06
поделиться
Другие вопросы по тегам:

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