Dataframe.resample()仅适用于时间序列数据.我找不到从非时间序列数据中获取每一行的方法.什么是最好的方法?
在丹麦,我们有一个奇怪的评级系统如下.[-3,00,02,4,7,10,12]我们的任务是采用具有不同十进制数的向量,并将其四舍五入到最接近的有效等级.到目前为止,这是我们的代码.
import numpy as np
def roundGrade(grades):
if (-5<grades<-1.5):
gradesRounded = -3
elif (-1.5<=grades<1.5):
gradesRounded = 00
elif (1.5<=grades<3):
gradesRounded = 2
elif (3<=grades<5.5):
gradesRounded = 4
elif (5.5<=grades<8.5):
gradesRounded = 7
elif (8.5<=grades<11):
gradesRounded = 10
elif (11<=grades<15):
gradesRounded = 12
return gradesRounded
print(roundGrade(np.array[-2.1,6.3,8.9,9]))
Run Code Online (Sandbox Code Playgroud)
我们的控制台似乎不喜欢这样并返回:TypeError:builtin_function_or_method'对象不可订阅
感谢所有帮助,如果您有更聪明的方法,欢迎您将我们放在我们的位置.
在给定的numpy数组中X:
X = array([1,2,3,4,5,6,7,8,9,10])
Run Code Online (Sandbox Code Playgroud)
我想分别替换索引(2, 3)和(7, 8)单个元素-1,如:
X = array([1,2,-1,5,6,7,-1,10])
Run Code Online (Sandbox Code Playgroud)
换句话说,我用一个奇异的值替换了索引(2, 3)和(7,8)原始数组的值.
问题是:它周围是否有一种numpy-ish方式(即没有for循环和使用python列表)?谢谢.
注意:这不等于用另一个元素就地替换单个元素.它用"奇异"值替换多个值.谢谢.
这是我目前的代码
pN ={'dave': 10, 'jacinta': 10, 'james': 8, 'john': 6, 'jack': 3, 'sam': 2}
highestCount = max(pN.values())
for k, v in pN.items():
if v == highestCount:
print(v,k)
Run Code Online (Sandbox Code Playgroud)
但是,这仅打印顶级用户,如果共享该位置,则再次打印它
10 dave
10 jacinta
Run Code Online (Sandbox Code Playgroud)
我需要能够打印任意数量的顶级用户(n)并将其格式化为例如n = 5:
10 john, jacinta,
8 james
6 john
3 jack
2 sam
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中一列作为字典。我想将它解包成多列(即代码,金额是下面原始列格式中的单独列)。以下代码用于使用 pandas v0.22,现在 (0.23) 给出索引错误:
pd.DataFrame.from_records(df.col_name.fillna(pd.Series([{'code':'not applicable'}], index=df.index)).values.tolist())
ValueError: Length of passed values is 1, index implies x
Run Code Online (Sandbox Code Playgroud)
我在 google/stack overflow 上搜索了几个小时,以前的其他解决方案都没有工作了。
原始列格式:
dict_codes
0 {'code': 'xx', 'amount': '10.00',...
1 {'code': 'yy', 'amount': '20.00'...
2 {'code': 'bb', 'amount': '30.00'...
3 {'code': 'aa', 'amount': '40.00'...
10 {'code': 'zz', 'amount': '50.00'...
11 NaN
12 NaN
13 NaN
Run Code Online (Sandbox Code Playgroud)
有没有人有什么建议?
谢谢
我试图弄清楚如何使用Locindexer对象来选择数据帧的子集.
例如
var = df.loc(df['rating'] == 4)
返回为
pandas.core.indexing._LocIndexer
如何使用LocIndexer选择数据帧的子集?
我有一个大约60列和200万行的数据帧.有些列大多是空的.我使用此函数计算了每列中的空值百分比.
def missing_values_table(df):
mis_val = df.isnull().sum()
mis_val_percent = 100 * df.isnull().sum()/len(df)
mis_val_table = pd.concat([mis_val, mis_val_percent], axis=1)
mis_val_table_ren_columns = mis_val_table.rename(
columns = {0 : 'Missing Values', 1 : '% of Total Values'})
return mis_val_table_ren_columns
Run Code Online (Sandbox Code Playgroud)
现在我想删除缺少80%以上(例如)值的列.我尝试了以下代码但它似乎没有工作.
df = df.drop(df.columns[df.apply(lambda col: col.isnull().sum()/len(df) > 0.80)], axis=1)
Run Code Online (Sandbox Code Playgroud)
先感谢您.希望我不会遗漏一些非常基本的东西
我收到此错误
TypeError :("'generator'对象不可调用",u'Ccurred在索引Unique_Key')
如何转换列表,例如:
94.192.0.0/14
94.0.0.0/12
93.96.0.0/16
Run Code Online (Sandbox Code Playgroud)
到:
94.192.0.0-94.195.255.255
94.0.0.0-94.15.255.255
93.96.0.0-93.96.255.255
Run Code Online (Sandbox Code Playgroud)
使用python3?
我想用C++选择字符串的前8个字符.现在我创建一个长度为8个字符的临时字符串,并用另一个字符串的前8个字符填充它.
但是,如果另一个字符串不是8个字符长,我留下了不需要的空格.
string message = " ";
const char * word = holder.c_str();
for(int i = 0; i<message.length(); i++)
message[i] = word[i];
Run Code Online (Sandbox Code Playgroud)
如果word是"123456789abc",此代码正常工作并message包含"12345678".
但是,如果word更短,那么"1234"消息最终就会出现"1234 "
如何选择字符串的前八个字符,如果短于8个字符,则如何选择整个字符串?
两者有什么区别?tqdm 环绕任何可迭代对象。但是我不确定 tqdm 在给定两个参数时如何运行。
# train_ids = list
elements = ('a', 'b', 'c')
for count, ele in tqdm(enumerate(elements)):
print(count, i)
# two arguments
for count, ele in tqdm(enumerate(elements), total=len(train_ids)):
print(count, i)
Run Code Online (Sandbox Code Playgroud) python ×9
pandas ×4
dictionary ×2
numpy ×2
python-3.x ×2
arrays ×1
c++ ×1
c-strings ×1
cidr ×1
ip ×1
resampling ×1
rounding ×1
string ×1
tqdm ×1