我有一个这样的数据框:
index num S
0 1 1
0 2 0
0 3 0
0 4 1
1 1 1
1 2 1
1 3 Nan
1 4 Nan
我试图将它从长到宽改变。例如
matches_df.columns = matches_df.columns.str.split('_', expand=True)
我根据this回答尝试了以下代码,但是我收到以下错误:
https://gallery.azure.ai/Experiment/Logistic-Regression-for-Text-Classification-Sentiment-Analysis-1
https://de.dariah.eu/tatom/classification_logistic_regression.html
TypeError:'float'类型的对象没有len()
为什么我无法拆分“_”?列中还有其他信息我想保留。
答案 0 :(得分:1)
有pandas.wide_to_long
,当列有这样的存根时很好。
import pandas as pd
df.reset_index(inplace=True,drop=True)
df['id'] = df.index
df = pd.wide_to_long(df, stubnames='S_', i='id', j='num').reset_index().rename(columns={'S_':'S'})
# id num index S
#0 0 1 0 1.0
#1 1 1 1 1.0
#2 0 2 0 0.0
#3 1 2 1 1.0
#4 0 3 0 0.0
#5 1 3 1 NaN
#6 0 4 0 1.0
#7 1 4 1 NaN