【问题标题】:How to append a unique list created within a for loop如何附加在 for 循环中创建的唯一列表
【发布时间】:2021-06-20 02:11:31
【问题描述】:

我有一个关于电影的数据框

df = pd.read_csv("https://raw.githubusercontent.com/Giovanni1085/UvA_CSDA_2021/main/assignments/miniproject/Pudding-Film-Dialogue-Clean.csv"

每部电影都有genderproportion_of_dialogue 列。后者显示每个给定角色的对话比例,'gender' 列显示 cours 的性别。

我想创建一个 for 循环,它遍历每一行并在每次一行在几个字符之后给出一部新电影时创建一个新字典。我想在这本字典中列出女性和男性对话的比例。这一切都在它自己的字典中。 结果会是这样的:

我有的是这个(很多):

proportion_per_film_dictionary  = {}
prop_woman = 0
prop_man = 0

for i in range(len(df.index)):
  if df.loc[i,'index1'] == 0:           #I made a column with the index so I could do this for the first row
    dct['film_%s' %i] = []
    if df.loc[i, 'gender'] == 'woman':
      prop_woman = prop_woman + df.loc[i,'proportion_of_dialogue']
    if df.loc[i,'gender'] == 'man':
      prop_man = prop_man + df.loc[i,'proportion_of_dialogue']
    if df.loc[i,'title'] != df.loc[i+1,'title']:
      dct['film_%s'%i].append(prop_man)
      dct['film_%s'%i].append(prop_woman)
      proportion_per_film_dictionary.append(dct['film_%s'%i])
      prop_woman = None
      prop_man = None
  
  elif df.loc[i,'title'] == df.loc[i+1,'title']:
    if df.loc[i, 'gender'] == 'woman':
      prop_woman = prop_woman + df.loc[i,'proportion_of_dialogue']
    if df.loc[i,'gender'] == 'man':
      prop_man = prop_man + df.loc[i,'proportion_of_dialogue']
    
  elif df.loc[i,'title'] != df.loc[i+1, 'title']:
    if df.loc[i, 'gender'] == 'woman':
      prop_woman = prop_woman + df.loc[i,'proportion_of_dialogue']
    if df.loc[i,'gender'] == 'man':
      prop_man = prop_man + df.loc[i,'proportion_of_dialogue']
    if df.loc[i,'title'] != df.loc[i+1,'title']:
      dct['film_%s'%i].append(prop_man)
      dct['film_%s'%i].append(prop_woman)
      proportion_per_film_dictionary.append(dct['film_%s'%i])
      prop_woman = None
      prop_man = None

这段代码显示了每个电影标题的迭代,我首先也尝试了i-1,但显然 Python 不支持 -1,尽管它支持 +1

我现在收到以下错误:

dict' 对象没有属性 'append'

我不知道为什么。有谁能帮助我吗?谢谢

【问题讨论】:

    标签: python pandas dataframe dictionary append


    【解决方案1】:

    在 python 字典中你不使用append,那是列表。对于字典,通过分配一个键来添加一个新值就足够了。像这样:

    dct['film_%s'%i] = prop_man
    dct['film_%s'%i] = prop_woman
    

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      相关资源
      最近更新 更多