我有一个数据框,我想根据不同的条件删除重复项。
A B
0 1 1.0
1 1 1.0
2 2 2.0
3 2 2.0
4 3 3.0
5 4 4.0
6 5 5.0
7 - 5.1
8 - 5.1
9 - 5.3
Run Code Online (Sandbox Code Playgroud)
我想从A列中删除所有重复项,但带有“-”的行除外。在此之后,我想基于A列的B列值,使用“-”作为值从A列中删除重复项。给定输入数据框,应返回以下内容:
A B
0 1 1.0
2 2 2.0
4 3 3.0
5 4 4.0
6 5 5.0
7 - 5.1
9 - 5.3
Run Code Online (Sandbox Code Playgroud)
我有以下代码,但是对于大量数据而言效率不高,我该如何改善它。
def generate(df):
str_col = df[df["A"] == "-"]
df.drop(df[df["A"] == "-"].index, inplace=True)
df = df.drop_duplicates(subset="A")
str_col = b.drop_duplicates(subset="B")
bigdata = df.append(str_col, ignore_index=True)
return …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,我想根据其他列上的条件创建一个新列。创建带有1的新列“ ans”,并基于列“ ix”递增。在“ ix”列中,如果该值与下一个相同,则使“ ans”列保持相同,并且其增量“ ans”不同
感谢您的回答,我是Python的新手,所以我不确定该怎么做
index ix
1 pa
2 pa
3 pa
4 pe
5 fc
6 pb
7 pb
8 df
Run Code Online (Sandbox Code Playgroud)
应导致:-
index ix ans
1 pa 1
2 pa 1
3 pa 1
4 pe 2
5 fc 3
6 pb 4
7 pb 4
8 df 5
Run Code Online (Sandbox Code Playgroud) 我试图将每一列中包含特定字符的每一行移动到数据框的底部.....
Index Closer Running
0 4 AQ
1 - AQ
2 - AD
3 2 AP
4 9 AP
5 5 AQ
Run Code Online (Sandbox Code Playgroud)
我试图将包含“-”的Closer列中的每一行移到数据框的底部,这样我得到的数据框看起来像这样,我该如何去做?
Index Closer Running
0 4 AQ
1 2 AP
2 9 AP
3 5 AQ
4 - AQ
5 - AD
Run Code Online (Sandbox Code Playgroud) 我想使用第一行作为参考来计算数据框中的百分比变化。例如我的数据框
Set rate field
A 3 10
B 2 17
C 5 4
Run Code Online (Sandbox Code Playgroud)
使用 A 行作为参考,我想计算数据框中所有列从 A 行到每隔一行的百分比变化。这将导致
Set rate field
A 3 10
B -33 70
C 66.66 -60
or
Set rate field pct_rate pct-field
A 3 10 0 0
B 2 17 -33 70
C 5 4 66.66 -60
Run Code Online (Sandbox Code Playgroud)
我的代码:
z %>%
mutate(pct_rate = (rate - lag(rate)/ rate ) * 100)
Run Code Online (Sandbox Code Playgroud)
这没有给我想要的结果