我升级了笔记本电脑,并在Pandas 0.23上安装了Python 2.7。由于结果不尽相同,我以前所有可用的脚本都不再运行。
数据框如下:
Index ID Text_column abc_A abc_B abc_C abc_D
0 123 some text True False False True
1 124 another text False True False False
2 125 different topic False True True False
3 126 set of words False False False False
使用以下代码:
df2=pd.wide_to_long(df1,['abc_'], i='ID', j='Concept').reset_index()
用来给我以下数据框d2:
Index ID Concept Text_column abc_
0 123 A some text True
1 123 B some text False
2 123 C some text False
3 123 D some text True
4 124 A another text False
5 124 B another text True
6 124 C another text False
7 124 D another text False
8 125 A different topic False
9 125 B different topic True
10 125 C different topic True
11 125 D different topic False
12 126 A set of words False
13 126 B set of words False
14 126 C set of words False
15 126 D set of words False
在0.23版本中,我得到了完全空的数据框,例如:
Index ID Concept Text_column abc_A abc_B abc_C abc_D
我尝试了融化,但是我不想在value_vars中指定所有列,例如[abc_A,abc_B等],因为不同项目的变量名非常不同,并且我有许多这样的脚本。
解决此问题的最佳方法是什么?
非常感谢您!
答案 0 :(得分:2)
添加suffix='\w+'
的默认值为suffix='\d+'
,即数字
pd.wide_to_long(df, ['abc_'], i='ID', j='Concept',suffix='\w+').reset_index()
Out[243]:
ID Concept Index Text_column abc_
0 123 A 0 sometext True
1 124 A 1 anothertext False
2 125 A 2 differenttopic False
3 126 A 3 setofwords False
4 123 B 0 sometext False
5 124 B 1 anothertext True
6 125 B 2 differenttopic True
7 126 B 3 setofwords False
8 123 C 0 sometext False
9 124 C 1 anothertext False
10 125 C 2 differenttopic True
11 126 C 3 setofwords False
12 123 D 0 sometext True
13 124 D 1 anothertext False
14 125 D 2 differenttopic False
15 126 D 3 setofwords False