我想将每个列标题下具有非不同值的数据帧转换为每个列标题下具有不同值的数据帧,并在其旁边的特定列中出现这些值。例如:
我的初始数据框在下面可见:
A B C D
0 CEN T2 56
2 DECEN T2 45
3 ONBEK T2 84
NaN CEN T1 59
3 NaN T1 87
NaN NaN T2 NaN
0 NaN NaN 98
NaN CEN NaN 23
NaN CEN T1 65
其中A、B、C和D是列标题,下面各有9个值(包括空格)
我首选的输出数据框应该如下所示:(首先是原始数据框中每列的唯一值列,然后是它们在该特定列中的出现情况)
A B C D A B C D
0 CEN T2 56 2 4 4 1
2 DECEN T1 45 1 1 3 1
3 ONBEK NaN 84 2 1 NaN 1
Nan NaN NaN 59 NaN NaN NaN 1
NaN NaN NaN 87 NaN NaN NaN 1
NaN NaN NaN 98 NaN NaN NaN 1
NaN NaN NaN 23 NaN NaN NaN 1
NaN NaN NaN 65 NaN NaN NaN 1
其中A、B、C和D是列标题,其下方首先是原始.csv文件中每列的不同值,然后是每个元素在其特定列中的出现情况
有人有主意吗
下面的代码用于将每列中的唯一值获取到新的数据帧中。我尝试使用.value\u计数来获取每列中的出现次数,但在那里,我无法使用唯一的值将其再次放入一个数据帧中
df
new_df=pd.concat([pd.Series(df[i].unique()) for i in df.columns], axis=1)
new_df.columns=df.columns
new_df
困难的部分是保持每行中列的值对齐。为此,您需要从
unique
和pd.concat
构建一个新的数据帧,并将value_counts
映射到此新数据帧的每一列如果只需要在每对列及其计数之间保持对齐,例如
A
-A_Count
、B
-B_Count
……,只需使用value_counts
和reset_index
一些命令来更改轴名称相关问题 更多 >
编程相关推荐