这是我的数据
No Body
1 DaTa, Analytics 2
2 StackOver. 67%
Run Code Online (Sandbox Code Playgroud)
这是我的预期输出
No Body Non Alphanumeric
1 DaTa, Analytics 2 1
2 StackOver. 67% 2
Run Code Online (Sandbox Code Playgroud)
我只计算非字母数字,如! @ # & ( ) % – [ { } ] : ; ', ? / * 空格,数字不计算
我有分数数据,我想按自定义分数进行分组.
Id Date Score
1 2018-01-01 56
2 2018-01-01 72
3 2018-01-01 91
4 2018-01-01 67
5 2018-01-01 65
6 2018-01-02 75
7 2018-01-02 72
8 2018-01-02 91
9 2018-01-02 82
10 2018-01-02 81
Run Code Online (Sandbox Code Playgroud)
这是我的预期
Date <60 60-79 80-100
2018-01-01 1 3 1
2018-01-02 0 2 3
Run Code Online (Sandbox Code Playgroud)
我做的是
result = pd.crosstab(df.Date, df.Score)
result['<60'] = result['1']+ ... + result['59']
result['60-79'] = result['60']+ ... + result['79']
result['80-100'] = result['80']+ ... + result['100']
Run Code Online (Sandbox Code Playgroud)
然后我应该删掉很多专栏
有更好的方法吗?
这是我的数据
df
No Name Address English History Math Physics Chemistry Biology
1 Arthur New York 80 65 100 89 92 94
2 Barthur New Mexico 70 60 94 83 82 95
Run Code Online (Sandbox Code Playgroud)
我做的是
df['Science'] = df['Math'] + df['Physics'] + df['Chemistry'] + df['Biology']
我的问题是,实际的数据超过900列,我该如何更换df['Math'] + df['Physics'] + df['Chemistry'] + df['Biology'],从总结df['Math']到df['Biology'](按范围)
我希望这个问题足够清楚
这是我的数据
No Body
1 DaTa, Analytics
2 StackOver.
Run Code Online (Sandbox Code Playgroud)
这是我的预期输出
No Body Vowels Consonant
1 DaTa, Analytics. 5 8
2 StackOver. 3 6
Run Code Online (Sandbox Code Playgroud) 我想对数据集进行分组并返回最大和最小时间戳.这是我的数据
id timestamp
1 2017-09-17 10:09:01
2 2017-10-02 01:13:15
1 2017-09-17 10:53:07
1 2017-09-17 10:52:18
2 2017-09-12 21:59:40
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出
id max min
1 2017-09-17 10:53:07 2017-09-17 10:09:01
2 2017-10-02 01:13:15 2017-09-12 21:59:40
Run Code Online (Sandbox Code Playgroud)
这就是我所做的,代码似乎没有效率,我希望在熊猫上做更好的方法
data1 = df.sort_values('timestamp').drop_duplicates(['customer_id'], keep='last')
data2 = df.sort_values('timestamp').drop_duplicates(['customer_id'], keep='first')
data1['max'] = data1['timestamp']
data2['min'] = data2['timestamp']
data = data1.merge(data2, on = 'customer_id', how='left')
data = data.drop(['timestamp_x','timestamp_y'], axis=1)
Run Code Online (Sandbox Code Playgroud)
似乎熊猫有这种类型的支点
我是一个新的 spark 用户,之前我来自熊猫背景。这是我的 Spark 数据框
In[75]: spDF
Out[75]: DataFrame[customer_id: string, name: string]
Run Code Online (Sandbox Code Playgroud)
当我show他们
In[75]: spDF.show()
Out[75]:
+-----------+-----------+
|customer_id| name|
+-----------+-----------+
| 25620| MCDonnalds|
| 25620| STARBUCKS|
| 25620| nan|
| 25620| nan|
| 25620| MCDonnalds|
| 25620| nan|
| 25620| MCDonnalds|
| 25620|DUNKINDONUT|
| 25620| LOTTERIA|
| 25620| nan|
| 25620| MCDonnalds|
| 25620|DUNKINDONUT|
| 25620|DUNKINDONUT|
| 25620| nan|
| 25620| nan|
| 25620| nan|
| 25620| nan|
| 25620| LOTTERIA|
| 25620| LOTTERIA|
| 25620| STARBUCKS|
+-----------+-----------+ …Run Code Online (Sandbox Code Playgroud) 这是我的数据集,称之为 df
Id Name Math Physics Biology Chemistry
1 Andy A B A B
2 Bert B C D A
3 Candy A A A B
4 Dony A A C B
Run Code Online (Sandbox Code Playgroud)
期望值是A,第一个非预期值称为需要Need-improvement
Id Name Math Physics Biology Chemistry Need-Improvement
1 Andy A B A B Physics
2 Bert B C D A Math
3 Candy A A A B Chemistry
4 Dony A A C B Biology
Run Code Online (Sandbox Code Playgroud) 如何将数字转换为日期(通过使用这些数字作为到今天的距离)。这是我的资料
id Number
1 -3
2 -1
3 6
Run Code Online (Sandbox Code Playgroud)
因为今天是04/07/2019这样,它可以转换为
id Number date
1 -3 01/07/2019
2 -1 03/07/2019
3 6 10/07/2019
Run Code Online (Sandbox Code Playgroud) 我想做的是使用pandas dataframe计算字符串中最长的连续'0'两侧是数字'1'
这是我的数据集
Id label
1 1
2 11
3 101
4 10101
5 1001
Run Code Online (Sandbox Code Playgroud)
这是我的预期输出
Id label result
1 1 0
2 11 0
3 101 1
4 10101 1
5 1001 2
Run Code Online (Sandbox Code Playgroud) 在我的 MySQL 数据库中,用 VARCHAR 调用。然后,我将其导入到 Pandas 数据框。这是我的数据:
data5
id phone
1 +62634783472
2 0834838483
3 +62
Run Code Online (Sandbox Code Playgroud)
我想要的是将 +62 转换为 0,预期输出将是这样的
id phone
1 0634783472
2 0834838483
3 0
Run Code Online (Sandbox Code Playgroud)
我已经尝试了两件事,有
data5['phone'] = data5['phone'].str.replace('+62', '0')
data5['phone'] = data5['phone'].replace(to_replace='+62', value='0', regex=True)
Run Code Online (Sandbox Code Playgroud)
结果是:
error: nothing to repeat at position 0
Run Code Online (Sandbox Code Playgroud)
我想念什么?
这是我的数据集,为了确保您知道数据格式,在此之前我做了
df['Datetime_Start'] = df['Start'].dt.strftime('%D')
df['Datetime_Finish'] = df['Finish'].dt.strftime('%D')
Run Code Online (Sandbox Code Playgroud)
选定的有趣栏目
No Datetime_Start Datetime_Finish
1 13/08/18 31/08/18
1 14/08/18 25/08/18
Run Code Online (Sandbox Code Playgroud)
我期望的输出
No Datetime_Start Datetime_Finish Duration
1 13/08/18 31/08/18 12 Days
1 14/08/18 24/08/18 6 Days
Run Code Online (Sandbox Code Playgroud)
这是因为2018年8月18日、19日、25日和26日是周六和周日,17日和22日是公共假期(印度尼西亚)
这是印度尼西亚公共假期的链接https://publicholidays.co.id/2018-dates/,但如果您只包括 2018 年 8 月 17 日和 22 日来回答问题就可以了,但请将此设置为可配置的,以便我可以手动添加
我应该探索下载的数据集,我没有 sql 凭据,我正在使用 jupyter lab,并且 sql 文件与 jupyter 笔记本位于同一文件夹中。
import pandas as pd
pd.read_sql_table('DATA_SPPT.sql')
Run Code Online (Sandbox Code Playgroud)
错误信息
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-4a4c42554a20> in <module>()
----> 1 pd.read_sql_table('DATA_SPPT_OP_BERSAMA.sql')
TypeError: read_sql_table() missing 1 required positional argument: 'con'
Run Code Online (Sandbox Code Playgroud)
这是sql格式的下载,所以我想我不需要描述连接,那么我该怎么办?
如何以最简单的方式替换多个版本?
这是我的数据:
No Device
1 asus
2 Xiaomi
3 xiaomi
4 Asus
5 Samsung
Run Code Online (Sandbox Code Playgroud)
我想做到:
No Device
1 Asus
2 Xiaomi
3 Xiaomi
4 Asus
5 Samsung
Run Code Online (Sandbox Code Playgroud)
我做的是:
f = {'xiaomi':'Xiaomi', 'asus':'Asus'}
df['Device'] = df['Device'].map(f)
Run Code Online (Sandbox Code Playgroud)
但结果是:
No Device
1 Asus
2 NaN
3 Xiaomi
4 NaN
5 NaN
Run Code Online (Sandbox Code Playgroud)