在 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)
下面是我尝试执行的代码,但出现错误:
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)