2

作为这篇文章python pandas complex number的后续,现在 complex 可以很好地与 pandas 一起工作,我想保存复数但没有括号 - 当我使用以下命令时,最后一列(复数)打印在括号内编辑:这是完整的代码,用于读取数据文件(此处为示例)

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 文件中,复合体在括号内 - 我不能以这种方式使用它们,所以我想删除它们

4

1 回答 1

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
于 2013-09-20T20:48:15.650 回答