在 Dataframe Returns RangeIndex 错误上应用函数

Apply Function on Dataframe Returns RangeIndex Error

下面是我尝试执行的代码,但出现错误: KeyError: 'None of [RangeIndex(start=0, stop=54, step=1)] are in the [columns]'

我已经尝试使用 dev_cols 以几种方式在列中馈送,在 RangeIndex 中馈送与数据帧的索引相同。我只是有点卡住了。

dev_sentences = []
dev_labels = []
for i, (label, words) in enumerate(read_from("dev.txt"), 1):
    dev_sentences.append(words)
    dev_labels.append(label)
    
dev_sentences = pd.DataFrame(dev_sentences)
dev_sentences = dev_sentences.applymap(str)
dev_cols = dev_sentences.columns
print(dev_cols)
print(dev_sentences)

dev = pd.DataFrame()
dev['dev_combined'] = dev[dev_sentences.columns].apply(lambda row: ' '.join(row.values.astype(str)), axis=1)

这是预期的,因为 dev 是空 DataFrame,所以 select 任何列都失败了:

dev = pd.DataFrame()
dev[dev_sentences.columns]

需要:

dev_sentences = pd.DataFrame(dev_sentences).astype(str)
dev = dev_sentences.copy()
dev['dev_combined'] = dev.apply(' '.join, axis=1)

或使用 dev_sentences 代替 dev:

dev_sentences = pd.DataFrame(dev_sentences).astype(str)
dev_sentences['dev_combined'] = dev_sentences.apply(' '.join, axis=1)

改为:

dev_sentences = pd.DataFrame(dev_sentences)
dev_sentences = dev_sentences.applymap(str)
dev = pd.DataFrame()
dev['dev_combined'] = dev[dev_sentences.columns].apply(lambda row: ' '.join(row.values.astype(str)), axis=1)