我正在寻找一种从数据列中删除特定元素的有效方法。
我有这样的数据:
year
1 (1991)
10 (1991-2001)
8 (1991-1998)
2 (2000-2002)
我想成为这样:
year
1991
1991 - 2001
1991 - 1998
2000 - 2002
我想删除括号前后的括号和元素。
答案 0 :(得分:2)
pandas.Series.str.extract
df <- data.frame(
Date = c("27/9/2019", "28/9/2019", "1/10/2019", "2/10/2019"),
Var = c("A", "A", "B", "B"),
Value = c(56, 50, 90, 100), stringsAsFactors = F
)
\((.*)\)
之间提取内容()
答案 1 :(得分:1)
您可以使用以下代码
df['year'] = df['year'].str.split('(').str[1].str.strip(')')
输出
year
0 1991
1 1991-2001
2 1991-1998
3 2000-2002
答案 2 :(得分:0)
怎么样:
df['year'] = df['year'].str[1:-1]
或者更安全,如果您的数据并非总是以'()'
开头/结尾:
# str.strip accepts regex
df['year'] = df['year'].str.strip('(|)')
输出:
1 1991
10 1991-2001
8 1991-1998
2 2000-2002
Name: year, dtype: object
答案 3 :(得分:-2)
lines = [
"year",
"1 (1991)",
"10 (1991-2001)",
"8 (1991-1998)",
"2 (2000-2002)"
]
formatted_lines = []
for line in lines:
updated_line = line.split('(') # Splits it into two lines: ["1 ", "1991)"]
updated_line = updated_line.replace(')') # remove extra parenthesis
formatted_lines.append(updated_line)