如何访问新数据框中的单元格?

时间:2018-02-22 19:39:24

标签: python pandas dataframe

我根据原始数据框(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

修改 这是df的一个例子: enter image description here

以下是drama_df的示例: enter image description here

2 个答案:

答案 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=' ')