【问题标题】:Iteration over columns problems on condition在条件下迭代列问题
【发布时间】:2020-10-18 21:18:11
【问题描述】:

我有一个数据集,其中包含多个列和一个名为“Total”的行,其中存储 1 到 4 之间的值。 我想遍历每一列,并根据存储在“总计”行中的数字,添加一个带有“是”或“否”的新行。
我还有一个用于迭代的列表“列”。 所有数据都是float64

我是 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"

我的数据集:

谢谢。

【问题讨论】:

  • 你能告诉我们这个数据集是什么样的吗?
  • 我编辑帖子以显示我的数据集的图像。
  • 您使用什么库来存储您的DataSet?你应该标记它。
  • 我正在使用 pandas,抱歉我错了。我发现了问题:缺少条件中的 c 迭代 = dados_por_periodo.loc['VA',c] = "yes"。

标签: python pandas loops if-statement


【解决方案1】:

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

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

下次还可以尝试放置一些数据样本而不是数据集的图像,以便有人可以更好地帮助您:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2020-10-23
    • 2015-04-04
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多