我仍然是Python的noob,所以如果答案顯而易見,我表示歉意......我有一些類似於此的數據框(簡單示例):Python:如果列中的第n個值滿足一定條件,則對整個列執行計算
0 1 2 3
0 2 1 1 1
1 3 2 2 2
2 4 3 3 3
3 2 4 4 0
說我需要先檢查是否上每隔一列第4行大於1,如果是,則通過2減去整列的結果應該是這樣的:
0 1 2 3
0 0 1 1 1
1 1 2 2 2
2 2 3 3 3
3 0 4 4 0
在這個例子中,代碼應該檢查列中的第4個值(row3) 0和2大於1,因爲由於列0符合要求,所以整列減去2,而列2被忽略。
我目前有:
for flist in glob('*.csv'):
print(flist)
df = pd.read_csv(flist, delimiter = ',', header=None, index_col=False, skiprows=29, usecols=range(3,72))
if df.loc[3,0::2] > 1:
df.loc[:,0::2]-2
if df.loc[3,0::2] < -1:
df.loc[:,0::2]+2
可能有其他的東西不對的代碼,但是有,當我嘗試運行它,我得到
一個系列的真值是開始曖昧。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
任何幫助,將不勝感激。
我認爲你需要一點在其列,需要從減去2的條件更加具體。它是第一行中第一列的值大於1的列嗎?非常具體。 –