我有一个python pandas数据框,其中有3行:
Name Time count
AAA 5:45 5
BBB 13:01 8
CCC 11:16 3
我正在尝试遍历此数据帧,如果计数大于5,我必须将该行填充到新的数据帧。我知道一个函数的计数是2,因为只有2行大于5.我尝试了下面的代码,但它不起作用。任何帮助将不胜感激。
for i in range(2):
if(row['Occurences'] >= 5 ):
df6.loc[i] = [df4['MachineName'], df4['DateTime'], df4['Count']]
df6
我尝试了这段代码 - res为空,我根据条件将行附加到res。
res = pd.DataFrame(columns=('MachineName', 'DateTime', 'Occurences'))
print(pd.concat([res, df4[df4['Occurences'] >= 5]]))
res
答案 0 :(得分:1)
您只能使用boolean indexing
,正如Edchum在comment中提到的那样:
import pandas as pd
df4 = pd.DataFrame({'Name': {0: 'AAA', 1: 'BBB', 2: 'CCC'},
'Time': {0: '5:45', 1: '13:01', 2: '11:16'},
'count': {0: 5, 1: 8, 2: 3}})
print (df4)
Name Time count
0 AAA 5:45 5
1 BBB 13:01 8
2 CCC 11:16 3
res = pd.DataFrame(columns=('MachineName', 'DateTime', 'Occurences'))
res = pd.concat([res, df4[df4['count'] >= 5]])
print (res)
DateTime MachineName Name Occurences Time count
0 NaN NaN AAA NaN 5:45 5.0
1 NaN NaN BBB NaN 13:01 8.0