基于第一列值的 Pandas DataFrame Wide to Long

Fhtsm

我想转换以下宽格式的 Pandas DataFrame

df = pd.DataFrame([['A', '1', '2', '3'], ['B', '4', '5', '6'], ['C', '7', '8', '9']], columns=['ABC', 'def', 'ghi', 'jkl'])

df =
   ABC  def  ghi  jkl
0    A    1    2    3
1    B    4    5    6
2    C    7    8    9

转换为长格式,其中第一列中的值仍然对应于小写列中的值。列名称不能用作存根名称。新列的名称无关紧要,以后可以重命名。

输出应如下所示:

df =
   0  1
0  A  1
1  A  2
2  A  3
3  B  4
4  B  5
5  B  6
6  C  7
7  C  8
8  C  9

我不确定如何最好和有效地做到这一点。这可以用wide_to_long()来完成吗?然后我不知道如何处理存根名称。最好的是可以在大桌子上使用的高效单衬纸。

非常感谢!!

科拉连

您可以使用df.stack

>>> df.set_index('ABC') \
      .stack() \
      .reset_index(level='ABC') \
      .reset_index(drop=True)

  ABC  0
0   A  1
1   A  2
2   A  3
3   B  4
4   B  5
5   B  6
6   C  7
7   C  8
8   C  9

df.melt按照@MustafaAydın 的建议使用

>>> df.melt('ABC') \
      .sort_values('ABC') \
      .drop(columns='variable') \
      .reset_index(drop=True)

  ABC value
0   A     1
1   A     2
2   A     3
3   B     4
4   B     5
5   B     6
6   C     7
7   C     8
8   C     9

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列名为float的pandas wide_to_long

pandas wide_to_long后缀参数

如何基于另一列B的值替换Pandas DataFrame列A的值

在pandas DataFrame的每一列中查找第一个非零值

基于唯一列值的dict项替换pandas DataFrame中的行

在行匹配条件的Pandas DataFrame中获取第一列值

基于Pandas DataFrame中另一列的总和列

基于另一列追加Pandas DataFrame列

无法重命名pandas DataFrame中的第一列

在 R 中重塑一组列的多个副本 Wide > Long 和 Long > Wide

如何基于Pandas中特定值的一列转换仅在一列中仅具有唯一值的DataFrame

Pandas DataFrame:为什么我不能通过行迭代基于另一列的值来更改一列的值?

Python Pandas DataFrame-如何基于另一列(日期类型)中的部分匹配来对一列中的值求和?

Wide to Long 保存组

Python Pandas DataFrame检查一列的值是否在另一列表中

用另一列Pandas DataFrame替换一列中的值

如何遍历pandas DataFrame的一列并从另一列返回值?

从附加的CSV(pandas)中的第一列中删除基于“ 、、、、、”值的空行

基于以另一列为目标的参考表更新Pandas Dataframe列的问题

Pandas Dataframe:前两列分组并计算第一列的出现次数

从 Pandas DataFrame 中删除一列

基于变量设置 Pandas Dataframe 的列值

Pandas DataFrame read_csv 第一列作为字典中的键,第二列作为值(以简单的方式)

使用第一列作为索引将Excel转换为Pandas DataFrame

如何将pandas DataFrame的第一列作为系列?

在Pandas DataFrame中查找第一列匹配条件的矢量化方法

如何从'pandas.core.frame.DataFrame'中消除第一列

用另一列中的相同行值替换pandas dataframe列中的值

Pandas DataFrame:用下一列值替换列值以避免重复