条件下列问题的迭代

2024-10-04 05:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集,其中包含多个列和一个名为“Total”的行,该行存储1到4之间的值。 我想迭代每一列,并根据“Total”行中存储的数字,添加一个带有“yes”或“No”的新行。
我还有一个迭代的“列”列表。 所有数据都是浮动的

我是python新手,我现在不知道我是否在做正确的事情,因为我得到的都是“是”

for c in columns:
  if dados_por_periodo.at['Total',c] < 4:
    dados_por_periodo.loc['VA'] = "yes"
  else:
    dados_por_periodo.loc['VA'] = "no"

我的数据集: enter image description here

谢谢


Tags: 数据noin列表for数字事情loc
1条回答
网友
1楼 · 发布于 2024-10-04 05:19:58

你可以试试这个,我希望它对你有用:

import pandas as pd
import numpy as np

#creation of a dummy df
columns='A B C D E F G H I'.split()

data=[np.random.choice(2, len(columns)).tolist() for col in range(3)]
data.append([1,8,1,1,2,4,1,4,1])  #not real sum of values, just dummy values for testing
index=['Otono','Inverno', 'Primavera','Totals']
df=pd.DataFrame(data, columns=columns, index=index)
df.index.name='periodo' #just adding index name
print(df)


####Adition of the new 'yes/no' row
df = pd.concat([ df, pd.DataFrame([np.where(df.iloc[len(df.index)-1,:].lt(4),'Yes','No')], columns=df.columns, index=['VA'])])
df.index.name='periodo' #just adding index name
print(df)

输出:

df
           A  B  C  D  E  F  G  H  I
periodo                             
Otono      1  0  0  1  1  0  1  1  0
Inverno    0  1  1  1  0  1  1  1  1
Primavera  1  1  0  0  1  1  1  1  0
Totals     1  8  1  1  2  4  1  4  1


df(with added row)
             A   B    C    D    E   F    G   H    I
periodo                                            
Otono        1   0    0    1    1   0    1   1    0
Inverno      0   1    1    1    0   1    1   1    1
Primavera    1   1    0    0    1   1    1   1    0
Totals       1   8    1    1    2   4    1   4    1
VA         Yes  No  Yes  Yes  Yes  No  Yes  No  Yes

另外,尝试在下次使用一些数据样本,而不是数据集的图像,以便有人能以更好的方式帮助您:)

相关问题 更多 >