在将var myText = svg.selectAll(".mytext")
.data(graph.nodes)
.enter()
.append("text")
//the rest of your code
应用于pandas数据框的列后,我想出了方括号中的值(更像是list
)。如何拆除方括号?
str.findall()
答案 0 :(得分:23)
如果列value
中的值的类型为list
,请使用:
df['value'] = df['value'].str[0]
或者:
df['value'] = df['value'].str.get(0)
样品:
df = pd.DataFrame({'value':[[63],[65],[64]]})
print (df)
value
0 [63]
1 [65]
2 [64]
#check type if index 0 exist
print (type(df.loc[0, 'value']))
<class 'list'>
#check type generally, index can be `DatetimeIndex`, `FloatIndex`...
print (type(df.loc[df.index[0], 'value']))
<class 'list'>
df['value'] = df['value'].str.get(0)
print (df)
value
0 63
1 65
2 64
如果strings
使用str.strip
,然后按astype
转换为数字:
df['value'] = df['value'].str.strip('[]').astype(int)
样品:
df = pd.DataFrame({'value':['[63]','[65]','[64]']})
print (df)
value
0 [63]
1 [65]
2 [64]
#check type if index 0 exist
print (type(df.loc[0, 'value']))
<class 'str'>
#check type generally, index can be `DatetimeIndex`, `FloatIndex`...
print (type(df.loc[df.index[0], 'value']))
<class 'str'>
df['value'] = df['value'].str.strip('[]').astype(int)
print (df)
value
0 63
1 65
2 64
答案 1 :(得分:0)
如果是字符串,我们也可以使用string.replace方法
import pandas as pd
df =pd.DataFrame({'value':['[63]','[65]','[64]']})
print(df)
value
0 [63]
1 [65]
2 [64]
df['value'] = df['value'].apply(lambda x: x.replace('[','').replace(']',''))
#convert the string columns to int
df['value'] = df['value'].astype(int)
#output
print(df)
value
0 63
1 65
2 64
print(df.dtypes)
value int32
dtype: object