【问题标题】:Adding a new column in a Dataframe, with certain conditions在特定条件下在数据框中添加新列
【发布时间】:2020-05-22 21:18:26
【问题描述】:

我是python的新手,已经开始处理文本数据了。

我想在数据框中添加一列,将其与不同列中提到的条件进行比较并相应地填充。

数据集有 10000 行,我通过抽取 2000 行的随机样本来缩短它。

我想包含名为“Review Sentiment”的新列,如果 review.rating 为 >3,则将其中的单元格填充为 1,如果 review.rating =

这是我尝试过的。

代码:

Dataset = pd.read_csv('Datafiniti_Hotel_Reviews.csv')

Dataset_sample = Dataset.sample(n = 2000)
Dataset_sample.head()

i=0

for i in range(len(Dataset_sample.axes[0])):
            if(Dataset_sample['reviews.rating'] < 3):
                Dataset_sample.insert(len(Dataset_sample.axes[1],"Test",1))
            else:
                Dataset_sample.insert(len(Dataset_sample.axes[1],"Test",0)) 

错误:

ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

数据集:从数据集中提取。请帮助使用数据集中的这些列。逻辑将保持不变。

 ID   province reviews.rating 
 ----------------------------  
 1    CA             5
 7    ST             4
 3    DL             4
 6    YT             5
 5    JD             1

【问题讨论】:

标签: python pandas nlp sentiment-analysis


【解决方案1】:
import pandas as pd

# Data

dfBuses = pd.DataFrame({'size': [40,30], 'cost': [500,400]},
                      index = ['bus1', 'bus2'], columns=['size','cost']) 

print(dfBuses)

dfBuses['expensive']=[(row['cost']>=450)  for i,row in dfBuses.iterrows()]

print(dfBuses)

给予

      size  cost
bus1    40   500
bus2    30   400
      size  cost  expensive
bus1    40   500       True
bus2    30   400      False

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2018-06-20
    • 2019-09-22
    • 1970-01-01
    • 2018-08-21
    • 2019-09-30
    • 1970-01-01
    • 2022-08-10
    • 2023-03-24
    相关资源
    最近更新 更多