【问题标题】:How to access a cell in a new dataframe?如何访问新数据框中的单元格?
【发布时间】:2018-08-02 19:15:45
【问题描述】:

我根据原始数据框 (df) 中的标准创建了一个子数据框 (drama_df)。但是,我无法使用典型的 drama_df['summary'][0] 访问单元格。相反,我得到了KeyError: 0。我很困惑,因为type(drama_df) 是一个数据框。我该怎么办?请注意,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的例子:

以下是 Drama_df 的示例:

【问题讨论】:

  • 能否添加dfdrama_df 的示例?
  • @Marco 我上传了图片。
  • 对于未来的问题,请不要上传图片而是共享数据,例如df[['drama','summary']].head().to_dict() 或复制粘贴 print(df[['drama','summary']].head()) 的结果

标签: python pandas dataframe


【解决方案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

【讨论】:

  • 这工作谢谢!我将来会检查索引。此外,解析 lol 需要很长时间。
  • @handavidbang 我添加了一个运行速度更快的代码编辑。
【解决方案2】:

在这里等一下。您正在寻找 str.join() 操作。

只需这样做:

drama_txt = ' '.join(drama_df['summary'])

或者:

drama_txt = drama_df['summary'].str.cat(sep=' ')

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 2018-05-23
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多