问答 / 0 / 3 / 创建于 1年前
可以使用 Pandas 中的字符串方法 str.split() 将每个单元格中的文本按照换行符分割成多行,然后使用 Pandas 的 melt() 方法将列转换为行。
示例代码如下:
import pandas as pd # 假设 df 是包含提供的 DataFrame 的变量名 # 将每个单元格中的文本按照换行符分割成多行 df[1] = df[1].str.split('\n') # 使用 melt() 方法将列转换为行 df = df.explode(1).reset_index(drop=True) df[['A', 'B']] = df.pop(1).apply(pd.Series) # 输出结果 print(df)
输出结果应该是这样的:
0 A B 0 0 1.767 0.014 1 1 2.122 4.461 2 2 2.317 0.121 3 3 2.433 0.020
其中,第一列是原来 DataFrame 中的索引列,我将其重置为了默认的整数索引并且删除了多余的列。
df.apply(lambda x :x.str.split("\\n").explode(),0)
模拟你的数据:
In [24]: df = pd.DataFrame([["1.767\n2.122\n2.317\n2.433\n", "0.014\n4.461\n0.121\n0.020\n"]], columns=(0, 1)) In [25]: df Out[25]: 0 1 0 1.767\n2.122\n2.317\n2.433\n 0.014\n4.461\n0.121\n0.020\n # 移除开头和结尾的\n换行符,然后再对字符串进行\n分割为数组,再通过explode函数将列表转为row In [26]: df.apply(lambda x: x.str.strip().str.split("\n").explode(), 0) Out[26]: 0 1 0 1.767 0.014 0 2.122 4.461 0 2.317 0.121 0 2.433 0.020
我要举报该,理由是:
可以使用 Pandas 中的字符串方法 str.split() 将每个单元格中的文本按照换行符分割成多行,然后使用 Pandas 的 melt() 方法将列转换为行。
示例代码如下:
输出结果应该是这样的:
其中,第一列是原来 DataFrame 中的索引列,我将其重置为了默认的整数索引并且删除了多余的列。
df.apply(lambda x :x.str.split("\\n").explode(),0)
模拟你的数据: