pandas - 将特定行从一列移到下一列
问题描述
我有一个 X 列,我想在其他列中拆分特定行。
x
76.25
'87.12'
1
345.65
'96.45'
2
78.12
'85.23'
3
35.1
'65.21'
1
我想将所有带有 '' 的值转移到新的 Y 列,并将所有整数转移到新的列序列。请注意,所有值都是文本。所需的输出是
x y sequence
76.25 '87.12' 1
345.65 '96.45' 2
78.12 '85.23' 3
35.1 '65.21' 1
我有数百行。我阅读了关于 shift() 将值移动到下一列的信息,但在这种情况下,我不知道行位置,因为有数百行。是否可以使用此标准移动特定值?任何帮助将不胜感激。
解决方案
如果数据是规则的并且每个三元组都存在,您可以将值转换为 numpy 数组并重塑,然后传递给DataFrame
构造函数:
df1 = pd.DataFrame(df['x'].to_numpy().reshape(-1,3), columns=['x','y','seq'])
#oldier pandas versions
#df1 = pd.DataFrame(df['x'].values.reshape(-1,3), columns=['x','y','seq'])
print (df1)
x y seq
0 76.25 '87.12' 1
1 345.65 '96.45' 2
2 78.12 '85.23' 3
3 35.1 '65.21' 1
推荐阅读
- ios - 如何使用 swift 4 使用 post 功能将图像文件发送到服务器
- python - Python 给出 ImportError: No module named sqlalchemy.util._collections in pycharm
- java - JavaFX:有对话窗口时的Platform.exit()
- python - 使用更有效的方法处理数据,例如 python 中的并行
- ios - Firebase 删除帐户以及 iOS 上的数据库和存储
- angular - Angular 6 mat-对话框验证
- javascript - 网络连接丢失时处理 Ajax
- android - Greendao 生成类 android 需要很多时间
- ignite - 新节点加入或释放时点燃集群卡住
- function - 没有参数类型的过程声明的行为是什么?