Python 使用条件值将列添加到txt
我有一个txt_文件,其中的行如下: “2017-03-21 12:00:00”、“84433487986106999”、“RT@__________________;:艾因·韦尼格·泽尔达在《斯皮伦之书》中:)#任天堂 我想在左边添加一列,值为4表示正,值为0表示负,这取决于该行是否包含正(“:)”,“:D”)或负smilie(“:-(“,”:(”)。如果两种类型都在一行中,它需要变成99。我很高兴听到关于如何实现这些结果的任何建议。 我的尝试:Python 使用条件值将列添加到txt,python,python-3.x,pandas,twitter,Python,Python 3.x,Pandas,Twitter,我有一个txt_文件,其中的行如下: “2017-03-21 12:00:00”、“84433487986106999”、“RT@__________________;:艾因·韦尼格·泽尔达在《斯皮伦之书》中:)#任天堂 我想在左边添加一列,值为4表示正,值为0表示负,这取决于该行是否包含正(“:)”,“:D”)或负smilie(“:-(“,”:(”)。如果两种类型都在一行中,它需要变成99。我很高兴听到关于如何实现这些结果的任何建议。 我的尝试: 将熊猫作为pd导入 p_smilies=[“:
将熊猫作为pd导入
p_smilies=[“:)”,“:D”]
n_smilies=[”:-(“,”:(“]
csv\u input=pd.read\u csv('input.csv'))
csv_输入[“情绪”]=0
对于csv_输入中的行[“tweets”]:
对于p_微笑中的p:
如果p在直线上:
csv_input.to_csv('output.csv',index=False)
您可以使用:
我为无笑容添加新值3
:
p_smilies=[r":\)",r":D"]
n_smilies=[r":-\(",r":\("]
mp = csv_input["tweets"].str.contains('|'.join(p_smilies))
mn = csv_input["tweets"].str.contains('|'.join(n_smilies))
csv_input['sentiment'] = np.where(mn & mp, 99,
np.where(mn, 0,
np.where(mp, 4, 3)))
print (csv_input)
tweets sentiment
0 RT @_______len :) #SwitchMoment 4
1 :D :-( @NintendoDE URL 99
2 :( 0
3 Ein wenig Zelda 3
或者如果相同的值0
表示否定和无微笑:
csv_input['sentiment'] = np.where(mn & mp, 99,
np.where(mp, 4, 0))
print (csv_input)
tweets sentiment
0 RT @_______len :) #SwitchMoment 4
1 :D :-( @NintendoDE URL 99
2 :( 0
3 Ein wenig Zelda 0
p_smilies=[r":\)",r":D"]
n_smilies=[r":-\(",r":\("]
mp = csv_input["tweets"].str.contains('|'.join(p_smilies))
mn = csv_input["tweets"].str.contains('|'.join(n_smilies))
csv_input['sentiment'] = np.where(mn & mp, 99,
np.where(mn, 0,
np.where(mp, 4, 3)))
print (csv_input)
tweets sentiment
0 RT @_______len :) #SwitchMoment 4
1 :D :-( @NintendoDE URL 99
2 :( 0
3 Ein wenig Zelda 3
csv_input['sentiment'] = np.where(mn & mp, 99,
np.where(mp, 4, 0))
print (csv_input)
tweets sentiment
0 RT @_______len :) #SwitchMoment 4
1 :D :-( @NintendoDE URL 99
2 :( 0
3 Ein wenig Zelda 0