在Python中使用Pandas删除括号()和后处理数据帧时出现问题

在Python中使用Pandas删除括号()和后处理数据帧时出现问题,python,pandas,dataframe,matplotlib,Python,Pandas,Dataframe,Matplotlib,我只是Python的初学者,所以请原谅这个问题,我尝试了很多来完成它,但是失败了,所以我发布了这个。我有一个数据集,看起来像: 5.96303e-07 (11.6667 3.21427 -2.20471e-07) (11.8746 -1.75419 -2.37923e-07) (8.66991 -2.84873 5.29442e-07) (2.19427 13.547 1.16203e-05)

我只是Python的初学者,所以请原谅这个问题,我尝试了很多来完成它,但是失败了,所以我发布了这个。我有一个数据集,看起来像:

  5.96303e-07             (11.6667 3.21427 -2.20471e-07)             (11.8746 -1.75419 -2.37923e-07)             (8.66991 -2.84873 5.29442e-07)             (2.19427 13.547 1.16203e-05)
  9.67139e-07             (11.6171 3.16081 -8.83286e-08)             (11.8851 -1.763 -4.38136e-07)             (8.68988 -2.85339 1.81039e-07)             (1.61058 13.629 4.42662e-07)
  1.34613e-06             (11.5562 3.11037 -7.74061e-08)             (11.8897 -1.77006 -3.81523e-07)             (8.70652 -2.8608 8.00436e-08)             (1.47268 13.5569 -2.03173e-06)
  1.73261e-06             (11.4961 3.06921 -1.49294e-07)             (11.8919 -1.77567 -3.48887e-07)             (8.71974 -2.86802 5.2652e-08)             (1.59798 13.4556 -2.52073e-06)
  2.12563e-06             (11.4423 3.03706 -1.53771e-07)             (11.8932 -1.78022 -3.33928e-07)             (8.73 -2.87398 4.65075e-08)             (1.77817 13.3679 -2.42045e-06)
现在,当我访问一个实例的数据帧
df.iloc[:,1]
时,它给了我(11.6171,当我试图绘制它时,它给了我错误,然后我想既然
”(“
正在创建一个问题,我使用
df.replace('\(','',regex=True).replace('\),'',regex=True)删除了这个问题
。plot函数似乎可以工作,但给出了非常奇怪的数字(不允许发布该数字)。此外,当我尝试进行一些计算时,如
(df.iloc[:,1])^2
时,它给了我错误,它说:

TypeError: can't multiply sequence by non-int of type 'str' 

我猜数据的格式不正确。任何评论或建议都会有很大帮助。提前感谢。

这是一种很糟糕的解决方法,但如果数据集不是太大,您可以使用for循环获取每个元素,并使用str.replace(“),”)删除括号.

有两个相对较小的问题。下面的内容可能是您正在寻找的。也许

首先,您试图绘制的列是一个字符串。本质上,它包含字母/符号。即使删除“(”)”后,“数字”仍被视为字符串

# To convert a "3.14" (string) to a 3.14 (float) 
# floats are basically decimals
my_string = "3.14"
my_number = float(my_string)
此外,字符串中有多个“数字”。因此,要在该列中绘制数字,我认为首先需要拆分字符串,然后转换为数字

# Use your code to replace the special characters
df.replace('\(','',regex=True).replace('\)','',regex=True)

# new data frame with split value columns 
new = df["colname_with_three_numbers"].str.split(" ", n = 2, expand = True) 

# Making separate first name column from new data frame 
df["first_number"]= new[0]  
df["second_number"]= new[1] 
df["third_number"]= new[2]

# change the type to allow you to plot something like this should work
df["first_number"] = float(df["first_number"])

df

非常感谢,我将尝试、实施并恢复。希望能有所帮助。祝你好运!:)是的,可能会有意义,我想使用“awk”会奏效吗?谢谢:)