我有PandasDataFrame
A。我正在努力将其转换为我想要的格式,请参见DataFrame
B。我尝试了pivot
或melt
,但我不确定如何使其成为条件(string
值转换为FIELD_STR_VALUE
,numeric
值转换为FIELD_NUM_VALUE
)。我希望你能给我指出正确的方向。
A:输入 Dataframe
|FIELD_A |FIELD_B |FIELD_C |FIELD_D |
|--------|--------|--------|--------|
|123123 |8 |a |23423 |
|123124 |7 |c |6464 |
|123144 |99 |x |234 |
B:所需的输出 Dataframe
|ID |FIELD_A |FIELD_NAME |FIELD_STR_VALUE |FIELD_NUM_VALUE |
|---|--------|-----------|----------------|----------------|
|1 |123123 |B | |8 |
|2 |123123 |C |a | |
|3 |123123 |D | |23423 |
|4 |123124 |B | |7 |
|5 |123124 |C |c | |
|6 |123124 |D | |6464 |
|7 |123144 |B | |99 |
|8 |123144 |C |x | |
|9 |123144 |D | |234 |
3条答案
按热度按时间e0bqpujr1#
您可以使用:
map
那些来自dtype的字符串(参见代码中的注解)。*输出:
41ik7eoe2#
你也可以试试这个:
slmsl1lt3#
产出
我希望这有助于实现您想要的输出!
我们可以进一步延伸:
使用
pd.Series.str.extract
的另一个选项: