我根据原始数据框(drama_df
)中的条件创建了一个子数据框(df
)。但是,我无法使用典型的drama_df['summary'][0]
访问单元格。相反,我得到KeyError: 0
。我很困惑,因为type(drama_df)
是一个DataFrame。我该怎么办?请注意,df['summary'][0]
确实返回了一个字符串。
drama_df = df[df['drama'] > 0]
#Now we generate a lump of text from the summaries
drama_txt = ""
i = 0
while (i < len(drama_df)):
drama_txt = drama_txt + " " + drama_df['summary'][i]
i += 1
答案 0 :(得分:1)
这将为您解决:
drama_df['summary'].iloc[0]
创建subDataFrame时,您可能会将索引0
放在后面。因此,您需要使用iloc
按位置而不是索引名称(0
)来获取元素。
您还可以使用.iterrows()
或.itertuples()
执行此例程:
Itertuples要快很多,但是如果你有很多列,那么要处理的工作要多得多
for row in drama_df.iterrows():
drama_txt = drama_txt + " " + row['summary']
走得更快:
for index, summary in drama_df[['summary']].itertuples():
drama_txt = drama_txt + " " + summary
答案 1 :(得分:1)
在这里等一下。您正在寻找str.join()操作。
只需这样做:
drama_txt = ' '.join(drama_df['summary'])
或者:
drama_txt = drama_df['summary'].str.cat(sep=' ')