从复数中删除括号 - 熊猫

时间:2013-09-20 20:01:10

标签: python pandas export-to-csv complex-numbers

作为这篇文章python pandas complex number的后续内容,现在这个复杂的大熊猫工作正常,我想保存复杂的数字,但没有括号 - 当我使用以下命令时,最后一列(复数)打印在括号内 编辑:这是完整的代码,用于读取数据文件(样本here

import numpy as np
import pandas as pd
df = pd.read_csv('final.dat', sep=",", header=None)
df.columns=['X.1', 'X.2', 'X.3', 'X.4','X.5', 'X.6', 'X.7', 'X.8']
df['X.8'] = df['X.8'].str.replace('i','j').apply(lambda x: np.complex(x))
df1 = df.groupby(["X.1","X.2","X.5"])["X.8"].mean().reset_index()
df1['X.3'] = df["X.3"] #add extra columns
df1['X.4']=df["X.4"]
df1['X.6']=df["X.6"]
df1['X.7']=df["X.7"]
sorted_data = df1.reindex_axis(sorted(df1.columns), axis=1)
sorted_data.to_csv = ('final_sorted.dat', sep=',', header = False)

一切正常,但输出csv文件中的复合体在括号内 - 我不能这样使用它们,所以我想删除它们

1 个答案:

答案 0 :(得分:3)

Prob可以更好地支持读/写复杂,但ATM可以工作。

In [25]: df = DataFrame([[1+2j],[2-1j]],columns=list('A'))

In [26]: df
Out[26]: 
        A
0  (1+2j)
1  (2-1j)

In [27]: df['A'] = df['A'].apply(str).str.replace('\(|\)','')

In [28]: df
Out[28]: 
      A
0  1+2j
1  2-1j

In [29]: df.to_csv('test.csv')

In [30]: !cat test.csv
,A
0,1+2j
1,2-1j