列类型为set的Pandas数据框:如何初始化和更新值

时间:2019-09-04 08:48:24

标签: pandas dataframe set

假设我有一个包含现有内容的熊猫数据框:

import pandas as pd

df = pd.DataFrame(columns=['content'])
df['content'] = pd.Series(["a","b","c","d","e"])
df.head()

    content
0   a
1   b
2   c
3   d
4   e
  1. 如何添加带有空集的列?
  2. 如何更新记录集的子集(例如set.add(value)

1 个答案:

答案 0 :(得分:0)

两个问题都比预期的要困难。

要使用空集初始化新列:

df['Sets'] = [set() for _ in range(len(df))]
df.head()
content Sets
0   a   {}
1   b   {}
2   c   {}
3   d   {}
4   e   {}

使用唯一的字符串更新记录集的子集:

row_ids_to_update = [1,3,4]
column_id_set = df.columns.get_loc("Sets")
update_string = "uid12345"
df.iloc[row_ids_to_update, column_id_set].apply(
    lambda x: x.add(update_string))
df.head()
content Sets
0   a   {}
1   b   {uid12345}
2   c   {}
3   d   {uid12345}
4   e   {uid12345}

也许有更快的方式进行大量更新,例如避免使用 lambda