一个表格只有一列 每行都是一串数字 其中如果都是正数 就以空格为区分 如果是负数 则两个数之间没有空格 负号和负号后面的数字自动组成负数 与前面的数字分开 这样下来有56个数字 怎么分成56列
时间: 2024-04-07 13:33:47 浏览: 53
对于这种情况,你可以使用正则表达式来处理字符串并将其拆分为多列。在拆分之前,你需要确定负数的位置,并在合适的地方插入空格。
以下是一个示例代码,演示了如何将一列字符串拆分为56列:
```python
import pandas as pd
import re
# 示例DataFrame,包含一列以特定规则组成的数字字符串
df = pd.DataFrame({'numbers': ['1 2 -345678 -9 -10 ... -54 -55 -56', '1 2 -34 -56 ... 54 55 56', ...]})
# 定义正则表达式模式
pattern = r'(?<=[^-])(?=-)'
# 使用正则表达式将字符串中的负数前后添加空格
df['numbers'] = df['numbers'].apply(lambda x: re.sub(pattern, ' ', x))
# 使用split()函数将字符串拆分为多列
df = pd.DataFrame(df['numbers'].str.split().tolist(), columns=range(1, 57))
print(df)
```
运行这段代码后,将得到一个包含56列的DataFrame,每列包含一行中的一个数字。这里的示例DataFrame包含一个名为"numbers"的列,其中的每个元素是一个以特定规则组成的数字字符串。你可以根据你的实际需求替换为自己的DataFrame和列名。
阅读全文