从list值中,我尝试识别总和超过 10 的任何连续值对
a = [1,9,3,4,5]
Run Code Online (Sandbox Code Playgroud)
......所以我写了一个for循环......
values = []
for i in range(len(a)-2):
if sum(a[i:i+2]) >10:
values += [a[i:i+2]]
Run Code Online (Sandbox Code Playgroud)
...我将其重写为列表理解...
values = [a[i:i+2] for i in range(len(a)-2) if sum(a[i:i+2]) >10]
Run Code Online (Sandbox Code Playgroud)
两者都产生相同的输出:
values = [[1,9], [9,3]]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何最好地在 DataFrame 中应用上述列表理解。
这是示例 5 行 DataFrame
import pandas as pd
df = pd.DataFrame({'A': [1,1,1,1,0],
'B': [9,8,3,2,2],
'C': [3,3,3,10,3],
'E': [4,4,4,4,4],
'F': [5,5,5,5,5]})
df['X'] = df.values.tolist()
Run Code Online (Sandbox Code Playgroud)
其中: - a 位于 a 内,adf['X']是值列 A - F 的列表
df['X'] = …Run Code Online (Sandbox Code Playgroud)