【发布时间】:2021-06-09 16:58:46
【问题描述】:
如何将由字符串“##”(或任何字符串)分隔的单行转换为列。
抱歉,我知道这很容易,但我只是 python 新手。
样本数据:
输出:
我已经尝试过了,但结果不是我想要的: 数据 = [] idx = df[df["Errors"].eq("##")].index
for i in Idx:
df1 = df["Errors"].iloc[::i+1].reset_index(drop=True)
data.append(df1)
out = pd.concat(data, axis="columns").T.reset_index(drop=True)
结果:
感谢任何人的帮助。 谢谢。
【问题讨论】:
-
Pandas 并不是特别擅长处理可变长度行的数据。你真的需要熊猫吗?从文件中读取到列表列表很容易。
-
您还应该将示例数据发布为文本而不是屏幕截图。数据是 CSV 吗?是在 Excel 中吗?已经有数据框了吗?
-
@TimRoberts 我正在做一个转换数千行机器日志的项目,我真的不知道哪个更好用,panda 还是 numpy。
-
除非数据是数字(这不是数字),否则我不知道
pandas或numpy会给你带来什么。也许如果您正在计算错误频率的统计信息,那就是您进入pandas的时候。 -
@sedavidw 它来自以“.LOG 为扩展名的机器日志。我需要先在 excel 中打开它然后另存为 excel 格式。然后我转换为数据框并需要将结果显示给 Tkinker树视图。
标签: python pandas numpy transform