<p>您可以尝试以下方法:</p>
<pre><code>import pandas as pd
df = pd.DataFrame(columns=['ID', 'Divide', 'Object', 'List'], data=[ ['A, B', 2, 20, [0, 5]], ['C, D', 2, 40, [10, 15, 35]], ['E, F', 2, 20, [11, 15]], ['G', 1, 10, [1, 5]], ['H', 1, 10, ''], ['I, J', 2, 20, ''] ])
def split_list(lst, limit):
l1 = list()
l2 = list()
for e in lst:
if e <= limit:
l1.append(e)
else:
l2.append(e)
return l1, l2
df['ID'] = df['ID'].str.split(', ')
df['Limit'] = df['Object'] / df['Divide']
df['List'] = df.apply(lambda row: dict(zip(row['ID'], split_list(row['List'], row['Limit']))), axis=1)
df = df.explode('ID')
df['List'] = df.apply(lambda row: row['List'].get(row['ID']), axis=1)
print(df)
# Out[192]:
# ID Divide Object List Limit
# 0 A 2 20 [0, 5] 10.0
# 0 B 2 20 [] 10.0
# 1 C 2 40 [10, 15] 20.0
# 1 D 2 40 [35] 20.0
# 2 E 2 20 [] 10.0
# 2 F 2 20 [11, 15] 10.0
# 3 G 1 10 [1, 5] 10.0
# 4 H 1 10 [] 10.0
# 5 I 2 20 [] 10.0
# 5 J 2 20 [] 10.0
</code></pre>