我正在寻找一种方法来查找python数据帧中每列的方法,并用该列的平均值减去该列.假设,
df = pd.DataFrame({'a': [1.5, 2.5], 'b': [0.25, 2.75], 'c': [1.25, 0.75]})
Run Code Online (Sandbox Code Playgroud)
我想找到每列的平均值,它们将分别返回(2,1.5,1)
和减去1,2,3列中的值.
这会给, a
有人可以帮我这么做吗?
谢谢
我想知道我们是否可以通过任何机会撤消宏观行动.我使用Excel工作表作为表单,我有一个提交按钮(宏),它取得工作表的计数总和(基于表单输入)并将其存储在下一个工作表中.
我的问题是,如果我们按下提交按钮而没有完成它,或者我们按两次,我存储在下一张表中的总和就变得不准确了.如果有办法我们可以撤消excel中的宏操作?我尝试使用撤消按钮,但它不适用于宏.有没有办法可以撤消它?
我们可以添加另一个宏来解除之前宏的工作吗?
我有一个如下列表,
remove_words = ['abc', 'deff', 'pls']
Run Code Online (Sandbox Code Playgroud)
以下是我使用列名'string'的数据框
data['string']
0 abc stack overflow
1 abc123
2 deff comedy
3 definitely
4 pls lkjh
5 pls1234
Run Code Online (Sandbox Code Playgroud)
我想检查pandas dataframe列中remove_words列表中的单词,并删除pandas数据帧中的这些单词.我想检查单独出现的单词,而不是用其他单词出现.
例如,如果pandas df列中有'abc',请将其替换为''但如果它与abc123一起出现,我们需要保持原样.这里的输出应该是,
data['string']
0 stack overflow
1 abc123
2 comedy
3 definitely
4 lkjh
5 pls1234
Run Code Online (Sandbox Code Playgroud)
在我的实际数据中,我在remove_words列表中有2000个单词,在pandas数据帧中有50亿个记录.所以我正在寻找最有效的方法来做到这一点.
我在python中尝试过很少的东西,没有太大的成功.有人可以帮我这么做吗?任何想法都会有所帮助.
谢谢
我有两个数据框,
user=c(rep('A',7),rep('B',8))
data = seq(1:15)
date = as.Date(c('2016-01-01','2016-01-02','2016-01-03','2016-01-04','2016-01-05','2016-01-06','2016-01-07','2016-01-08','2016-01-09','2016-01-10','2016-01-11','2016-01-12','2016-01-13','2016-01-14','2016-01-15'))
df = data.frame(user,date,data)
df
user date data
1 A 2016-01-01 1
2 A 2016-01-02 2
3 A 2016-01-03 3
4 A 2016-01-04 4
5 A 2016-01-05 5
6 A 2016-01-06 6
7 A 2016-01-07 7
8 B 2016-01-08 8
9 B 2016-01-09 9
10 B 2016-01-10 10
11 B 2016-01-11 11
12 B 2016-01-12 12
13 B 2016-01-13 13
14 B 2016-01-14 14
15 B 2016-01-15 15
Run Code Online (Sandbox Code Playgroud)
和
df1 =data.frame(user = c('A','B'), …
Run Code Online (Sandbox Code Playgroud) 以下是我的数据,
data
date number value
2016-05-05 1 5
2016-05-05 1 6
2016-05-06 2 7
2016-05-06 2 8
2016-05-07 3 9
2016-05-08 4 10
2016-05-09 5 11
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令时,
data %>% groupby(date, number) %>% summarize(count = n())
Run Code Online (Sandbox Code Playgroud)
我得到以下信息,
date number count
2016-05-05 1 2
2016-05-06 2 2
2016-05-07 3 1
2016-05-08 4 1
2016-05-09 5 1
Run Code Online (Sandbox Code Playgroud)
现在我想过滤掉与计数大于 1 对应的条目。我想删除计数大于 1 的组合条目。我的输出应该如下所示,
data
date number value
2016-05-07 3 9
2016-05-08 4 10
2016-05-09 5 11
Run Code Online (Sandbox Code Playgroud)
其中前四个条目,因为它的计数大于 1 ,已被过滤掉。有人可以帮我做这件事吗?或者给出一些与之相关的想法?
我在火花中有以下命令,
data = sqlContext.sql("select column1, column2, column3 from table_name")
words = sc.textFile("words.txt")
Run Code Online (Sandbox Code Playgroud)
words.txt
有一堆单词,数据有三个取自table_name
.
现在,每当每个单词的单词模式words.txt
出现在三列数据中的任何一列时,我都想过滤掉数据中的行(火花数据帧)。
例如,如果words.txt
有字,如gon
,如果任何数据的三列包含值bygone
,gone
等等,我想筛选出该行。
我尝试了以下方法:
data.filter(~data['column1'].like('%gon%') | data['column2'].like('%gon%') | data['column3'].like('%gon%')).toPandas()
Run Code Online (Sandbox Code Playgroud)
这适用于一个词。但我想检查 中的所有单词words.txt
并将其删除。有没有办法做到这一点?
我是 PySpark 的新手。任何的意见都将会有帮助。
假设我有一个如下数据集,
(dd <- read.table(header = TRUE, text="a b
1 2
NA 1
1 NA
NA NA
1 2
NA 3"))
# a b
# 1 1 2
# 2 NA 1
# 3 1 NA
# 4 NA NA
# 5 1 2
# 6 NA 3
Run Code Online (Sandbox Code Playgroud)
我在想如何获得两列组合的NA值的计数.我的输出应该是,
No NA - 2
1st column NA - 2
2nd column NA - 1
Both NA - 1
Run Code Online (Sandbox Code Playgroud)
我不知道如何为列组合执行此操作.有谁能够帮我?
我有以下数据,
data
date ID value1 value2
2016-04-03 1 0 1
2016-04-10 1 6 2
2016-04-17 1 7 3
2016-04-24 1 2 4
2016-04-03 2 1 5
2016-04-10 2 5 6
2016-04-17 2 9 7
2016-04-24 2 4 8
Run Code Online (Sandbox Code Playgroud)
现在我想按ID分组,找到value2的平均值和value1的最新值.在这个意义上的最新价值,我想得到最新日期的价值,即在这里我想得到每个ID的2016-04-24对应值的value1.我的输出应该是,
ID max_value1 mean_value2
1 2 2.5
2 4 6.5
Run Code Online (Sandbox Code Playgroud)
以下是我正在使用的命令,
data %>% group_by(ID) %>% summarize(mean_value2 = mean(value2))
Run Code Online (Sandbox Code Playgroud)
但我不知道如何做第一个.在dplyr中总结时,有人可以帮助我获得最新的value1值吗?
以下是我的数据:
name id junk date time value value2
abc 1 1 1/1/2017 18:07:54 5 10
abc 1 2 1/1/2017 19:07:54 10 15
abc 2 3 2/1/2017 20:07:54 15 20
abc 2 4 2/1/2017 21:07:54 20 25
def 3 5 3/1/2017 22:07:54 25 30
def 3 6 3/1/2017 23:07:54 30 35
def 4 7 4/1/2017 12:07:54 35 40
def 4 8 4/1/2017 13:07:54 40 45
Run Code Online (Sandbox Code Playgroud)
我想根据三列删除重复项,name
和id
并date
取第一个值。我尝试了以下命令:
data.drop_duplicates(subset=['name', 'id', 'date'],keep = 'first')
Run Code Online (Sandbox Code Playgroud)
我还想将这三列分组并取value
和value2 …
我想清理unicode Hive表中的数据.以下是数据,
select ('http://10.0.0.1/���m��v������)�a�^�����kn:4�+9x�2c��m�{��')
Run Code Online (Sandbox Code Playgroud)
我需要的输出是查找我的列中是否有任何unicode字符并将其删除.这里的输出应该是,
http://10.0.0.1/
Run Code Online (Sandbox Code Playgroud)
或完全无效.他们中的任何一个都没问题.如果一行包含任何unicode字符,则可以将其完全设为null.
以下是我的尝试,
select REGEXP_REPLACE('http://10.0.0.1/���m��v������)�a�^�����kn:4�+9x�2c��m�{��', '\\[[:xdigit:]]{4}', '')
Run Code Online (Sandbox Code Playgroud)
和
select REGEXP_REPLACE('http://10.0.0.1/���m��v������)�a�^�����kn:4�+9x�2c��m�{��', '[||chr(128)||'-'||chr(255)||]', '')
Executed as Single statement. Failed [40000 : 42000] Error while compiling statement: FAILED: ParseException line 1:193 mismatched input '<EOF>' expecting ) near ')' in function specification
Elapsed time = 00:00:00.220
STATEMENT 1: SELECT Statement failed.
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我在桌子上清洁这些吗?
谢谢
编辑:
工作的地方,
select REGEXP_REPLACE('"http://r.rxthdr.com/w?i=s�F�""�HY|�K�>�0����D����W8뤒�O0�Q�D�1��Vc~�j[Q��f��{u�Be�S>n���Ò���&��F9���C�i��8:ڔ�_@ĪO��K?�Ēc�6��=��v[�����D�$%��:�a�40ݩ�&O��K��""�0�a<x��TcX���b��TN�}�x�o��UY$K�I�Օ""��(+�M���E�=K�A�I�A���q#l�(�yt�5��h}��~[��YOA��G�=ïˆï¿½{���. �Q���Ø;x=�s�0:�', '(?s).*\\P{ASCII}.*', '')
Run Code Online (Sandbox Code Playgroud)
它不工作的地方,
select REGEXP_REPLACE('c4k0j,}W""d+2|4y0hkCkRh+.{pq80{?X8O>b<:ph.3!{T', '(?s).*\\P{ASCII}.*', '')
select REGEXP_REPLACE('z|""},}69]6N2|c_;5.su={IU+|8ubq1<r$!Xxy#?Bhkv20:jXNgRh+5fwj:ndfWBJ}e)>','(?s).*\\P{ASCII}.*', '')
Run Code Online (Sandbox Code Playgroud)
图像中的第一个具有unicode字符.但是,粘贴它成为一个点.
你能帮我做这个吗?