我有一个DF,如下所示
DF =
Index R
0 A
1 "B,C"
2 D
3 "E,F"
我要从值中删除所有“”:
DF_New =
Index R
0 A
1 B,C
2 D
3 E,F
使用join(literal_eval(x))或其他构造无效。我该怎么办?
答案 0 :(得分:1)
您可以使用.str
访问器:
null
这应该删除该列中的所有文字双引号。
请注意,每个结果将是一个static void Main()
{
string data = "DisplayName=[s9dFSQ]Height=[rPBM7]User=[5cY]Date=[KJn7Zzd1f]";
Console.WriteLine(RemoveBracketsContent(data)); // prints DisplayName=Height=User=Date=
}
static string RemoveBracketsContent(string data)
{
string result = string.Empty;
bool brackedStarted = false;
for (int i = 0; i < data.Length; i++)
{
if (data[i].Equals('['))
{
brackedStarted = true;
continue;
}
else if (data[i].Equals(']'))
{
brackedStarted = false;
continue;
}
if (brackedStarted)
{
continue;
}
result += data[i];
}
return result;
}
,例如>>> df['R'].str.replace('"', '')
0 A
1 B,C
2 D
3 E,F
Name: R, dtype: object
。如果要将每个转换为列表容器,请使用:
str
答案 1 :(得分:0)
您可以使用:
>>> from scipy.stats import chisquare
>>> chisquare(list(samples.values()))
Power_divergenceResult(statistic=724.682234, pvalue=0.3825060783237031)
例如,
DF.loc[DF['R'].str.startswith('"'), 'R'] = DF['R'].str[1:]
DF.loc[DF['R'].str.endswith('"'), 'R'] = DF['R'].str[:-1]
请注意,这只会替换出现在字符串开头或结尾而不是中间的双引号。