python - 有什么方法可以不使用任何分隔符来写入 Pandas 数据框吗?

标签 python pandas

我有一个包含许多 DNA 序列的文本文件,每个序列都在一个单独的行上,有 20 个碱基对。我想将文件读入数据框,每个基数作为其自己的列,而不使用 for 循环或其他需要遍历整个文件的东西,因为文件非常大。

我试过使用“”作为分隔符,但它只会导致整行被处理成一列。我也尝试过使用“。”和 "\w"两者都没有按照我的意愿去做。

例如,对于具有以下内容的文件:

ACGT
CGTA
GTAC
TACG

数据框应该是这样的:

      1   2   3   4
1     A   C   G   T
2     C   G   T   A
3     G   T   A   C
4     T   A   C   G

最佳答案

您可以将其作为一列阅读并稍后拆分

# csv
# ATGC
# CTAG

df = pd.read_csv(header=None)
# df
#       0
# 0  ATGC
# 1  CTAG

df[0].str.split('', expand=True)

输出:

    0   1   2   3   4   5
0       A   T   G   X   
1       G   T   A   X   

这意味着您有两个额外的列,一前一后。但是您可以轻松地删除它们,例如:

df[0].str.split('', expand=True).iloc[:,1:-1]

给出:

   1  2  3  4
0  A  T  G  C
1  C  T  A  G

关于python - 有什么方法可以不使用任何分隔符来写入 Pandas 数据框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501113/

相关文章:

python 问答游戏错误

python - Django 管理员的特定用例

python - 带有 args 的子进程调用仅读取第一个 arg

检查逻辑的 Pythonic 方法

python - pandas 将字符串列转换为 boolean 值

python - 解析 Pandas DataFrame 中的日期/时间字符串

python - Django1.11 AttributeError at/login/'NoneType' 对象没有属性 'is_active'

python - 根据当前值更新 Pandas 数据帧值

python - 将数据框中的列与单个列表中的许多项目进行比较,并挑选出公共(public)元素

python - 从 DataFrame 中的标签获取列号