【发布时间】:2021-01-23 10:01:07
【问题描述】:
我有一个我想检查和扩展的对象列表。 具体来说,我的初始数据框是
Name
1 object1
7 object2
6 object3
4 object4
0 object5
8 object6
我将以下函数应用于我的数据框:
def example(file):
...
my_list2 = []
for u in file['Name']:
try:
minim = ...
except:
minim = 'NA'
my_list2.append(minim)
file['Others'] = my_list2
return file
创建一个新列Others,如下所示:
Name Others
1 object1 [object4, object3, object22]
7 object2 [object1]
6 object3 [object1]
...
我想做的是将函数也应用于Others 列中列表中的每个元素。这意味着我应该为第一个列表中的每个变量运行它,即,
[object4, object3, object22]
为了在我的初始数据框中添加一行(object22,因为它不包含在Name 列中)并具有类似的内容
Name Others
1 object1 [object4, object3, object22]
7 object2 [object1]
6 object3 [object1]
...
10 object22 [object23, object40, object1]
当然,当Others 中的所有元素都在Name 列中时,循环停止运行。
objectX 只是此示例的虚拟名称:Name 中的变量名称可以是 dog,或 mom,或其他任何名称。
我不知道如何运行该函数以将其应用于Others 列下列表中的元素,以将结果附加到原始数据集中。
如果您需要更多信息,请告诉我。
总结:
我需要运行函数
- 用于列名称中的对象。这会为每个对象生成一个字符串列表(最终也是空列表);
- 对于字符串列表中的每个对象:这会在名称列中创建新行
-
Name列中添加的新对象
【问题讨论】:
-
也许您可以向minimal-reproducible-example 提供您的问题。事实上,我无法在问题中清楚地了解您真正想要的内容。
-
@Ferris 我更新了问题。我不知道如何减少函数中的代码以使示例可重现。您可以将该函数视为随机生成后缀为 1 到 100 的“对象”变量列表的函数(只是为了使其更简单;但名称中的变量可以是“妈妈”、“狗”、“房子”、 ...)。如果您需要更多信息,请告诉我。非常感谢
-
我发布了一个答案,希望它会有所帮助。