【发布时间】:2018-12-20 22:59:09
【问题描述】:
我不明白这种应用行为 .. pandas 应用更新但返回 None
>>>import pandas as pd
>>>df_test = pd.Series({0: {'A', 'E'},
1: {'A', 'C', 'E', 'S'},
2: {'A', 'C', 'E'},
3: {'A', 'C', 'E', 'S'},
4: {'A', 'E'}})
>>>df_test
0 {A, E}
1 {A, S, E, C}
2 {A, C, E}
3 {A, S, E, C}
4 {A, E}
dtype: object
>>>df_test.apply(lambda x: x.add("X"))
0 None
1 None
2 None
3 None
4 None
dtype: object
但是,
>>>df_test
0 {A, X, E}
1 {A, X, S, E, C}
2 {A, X, C, E}
3 {A, X, S, E, C}
4 {A, X, E}
dtype: object
所以 df_test 已更新。但是如果我这样做:
>>> df_test = df_test.apply(lambda x: x.add("X"))
>>> df_test
0 None
1 None
2 None
3 None
4 None
dtype: object
此行为的解释是什么 - 应用正在更新数据帧,但返回的类型为 None。
【问题讨论】:
-
添加到集合不会返回集合的副本,它会返回 None,并就地修改集合。
标签: python pandas dataframe data-manipulation