我有一个panda数据框correct_X_test
,其中包含一列review
包含评论。我需要添加两个新列,其中包含部分评论如下:
对于一行评论review ='x1 x2 x3 x x x xi x x x xn'
,我需要库存sub_review_1_i='x1 x2 x3 x x x xi' and sub_review_i_n='xi x x x xn' for i in (1,n)
我使用以下代码提取这两个字符串:
for j in correct_y_test.index:
input_list=correct_X_test["review"][j].split()
for i in range(len(input_list)):
#Construction de la séquence de x1 à xi
sub_list_1_i=input_list[:i+1]
sub_str_1_i = ""
for ele in sub_list_1_i:
sub_str_1_i += ele + " "
#Construction de la séquence de xi à xn
sub_list_i_n=input_list[i:]
sub_str_i_n = ""
for ele in sub_list_i_n:
sub_str_i_n += ele + " "
但是不知道如何在日期框中存储这个,因为对于一个评论,我们将有i行和2列,请你知道吗?
2条答案
按热度按时间ttvkxqim1#
您可以为两个sub_review列创建空列表,然后为每个i值将相应的子查看字符串附加到这些列表。最后,您可以将这两个列表作为新列添加到correct_X_test Dataframe 。请尝试以下代码:
sub_review_1_i和sub_review_i_n列表在循环之前初始化,然后用i的每个值的子审查字符串填充。最后,使用
correct_X_test["sub_review_1_i"] = sub_review_1_i and correct_X_test["sub_review_i_n"] = sub_review_i_n.
将这两个列表作为新列添加到correct_X_test Dataframetp5buhyn2#
在我看来你有两个选择
选项1:将子审阅存储为列表
在此选项中,对于每个
"review"
,创建两个列表来存储sub_str_1_i
的值,另一个列表用于存储sub_str_i_n
的值。然后将这些列表作为新列添加到其各自的行中。以下是一个示例:选项2:为
sub_str_1_i
和sub_str_i_n
的每个组合创建新行在此选项中,
sub_str_1_i
和sub_str_i_n
的每个组合都作为新行存储在 Dataframe 中。您可以使用pd.DataFrame.explode
方法将选项1的输出转换为新行: