我想从DataFrame熊猫的数字列中获取第n个最小值或第n个最大值。
例:
df = pd.DataFrame({'a': [3.0, 2.0, 4.0, 1.0],'b': [1.0, 4.0 , 2.0, 3.0]})
a b
0 3.0 1.0
1 2.0 4.0
2 4.0 2.0
3 1.0 3.0
Run Code Online (Sandbox Code Playgroud)
列中的第三个最大值a是2 ,列中的第二个最小值b也是2。
我DataFrame从一个已经设置为其中一个数据列的索引的库中获取了一个.将它设置为另一列的最简单方法是什么,保留原始索引列.
输入:
df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','c'])
df = df.set_index('a')
b c
a
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
输出:( fe从列a到列改变索引b)
a c
b
2 1 3
5 4 6
8 7 9
Run Code Online (Sandbox Code Playgroud) 我正在使用非空白字符之间具有不同空格数的字符串.问题是这个字符串形成一个类别,它们必须相同.我想将它们格式化为在非空白字符fe之间具有完全相同的空格数1,但是如果可能的话,这可以推广为插入更多空格.并且在开头和结尾都不应该有空格.
示例n=1:
'a b b' => 'a b c'
' a b c ' => 'a b c'
Run Code Online (Sandbox Code Playgroud) 我想对 pandas 中的列应用自然排序顺序DataFrame。我要排序的列可能包含重复项。我已经看到了相关的自然排序 Pandas DataFrame
问题,但是它是关于对索引进行排序,而不是任何列。
例子
df = pd.DataFrame({'a': ['a22', 'a20', 'a1', 'a10', 'a3', 'a1', 'a11'], 'b': ['b5', 'b2', 'b11', 'b22', 'b4', 'b1', 'b12']})
a b
0 a22 b5
1 a20 b2
2 a1 b11
3 a10 b22
4 a3 b4
5 a1 b1
6 a11 b12
Run Code Online (Sandbox Code Playgroud)
自然排序列a:
a b
0 a1 b11
1 a1 b1
2 a3 b4
3 a10 b22
4 a11 b12
5 a20 b2
6 a22 b5
Run Code Online (Sandbox Code Playgroud)
自然排序列b: …
有一个元组集合,我想检查所有元组中的给定元素是否相等。
例如,考虑此数组中所有元组的第二个元素应返回false:
val a = Array((4,2), (8,1), (9,4), (10,2), (13,1))
Run Code Online (Sandbox Code Playgroud)
考虑此数组中所有元组的第二个元素时,应返回true:
val b = Array((4,3), (8,3), (9,3), (10,3), (13,3))
Run Code Online (Sandbox Code Playgroud) 我正在使用此处的代码片段阅读此 Excel 文件联合国能源指标:
def convert_energy(energy):
if isinstance(energy, float):
return energy*1000000
else:
return energy
def energy_df():
return pd.read_excel("Energy Indicators.xls", skiprows=17, skip_footer=38, usecols=[2,3,4,5], na_values=['...'], names=['Country', 'Energy Supply', 'Energy Supply per Capita', '% Renewable'], converters={1: convert_energy}).set_index('Country')
Run Code Online (Sandbox Code Playgroud)
这导致Energy Supply列具有对象类型而不是浮点数。为什么会这样呢?
energy = energy_df()
print(energy.dtypes)
Energy Supply object
Energy Supply per Capita float64
% Renewable float64
Run Code Online (Sandbox Code Playgroud) 我正在DataFrames使用XlsxWriter 将两个熊猫导出到Excel ,每个熊猫DataFrame都有一个单独的工作表。我想根据另一张纸中的值将一种颜色格式应用于一张纸中的所有单元格,它们基于列名和行号一对一地对应。
例:
Sheet1
A B C
1 1 3 1
2 0 4 2
Sheet2
A B C
1 a d b
2 b a a
Run Code Online (Sandbox Code Playgroud)
我想为Sheet1中所有在Sheet2中具有值“ a”的单元格分配一种颜色格式。
具有定义的有效值的间隔限制,其中的所有pandas数据帧列值应设置为给定值fe NaN.定义限制和数据帧内容的值可以假定为数字类型.
具有以下限制和数据框架:
min = 2
max = 7
df = pd.DataFrame({'a': [5, 1, 7, 22],'b': [12, 3 , 10, 9]})
a b
0 5 12
1 1 3
2 7 10
3 22 9
Run Code Online (Sandbox Code Playgroud)
设置列限制a将导致:
a b
0 5 12
1 NaN 3
2 7 10
3 NaN 9
Run Code Online (Sandbox Code Playgroud) 我有一个单词列表,如果声明,我想做,下面是我的列表:
list = ['camera','display','price','memory'(will have 200+ words in the list)]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
def check_it(sentences):
if 'camera' in sentences and 'display' in sentences and 'price' in sentences:
return "Camera/Display/Price"
if 'camera' in sentences and 'display' in sentences:
return "Camera/Display"
...
return "Others"
h.loc[:, 'Category'] = h.Mention.apply(check_it)
Run Code Online (Sandbox Code Playgroud)
对于这些组合将有太多组合,并且我希望单独返回行.有谁知道如何制作这个样本并单独返回单词而不是做'相机/显示/价格'?
我可以使用将一个数字字符串转换为int toInt:
scala> "1".toInt
res1: Int = 1
Run Code Online (Sandbox Code Playgroud)
但是,当我map遍历字符并使用它们分别转换它们toInt时,我得到了它们的ASCII码:
scala> "123".map(_.toInt)
res2: scala.collection.immutable.IndexedSeq[Int] = Vector(49, 50, 51)
Run Code Online (Sandbox Code Playgroud)
为什么会这样,并且有可能使用map和toInt完成此工作?
我有以下DataFrame由整数值组成:
df = pd.DataFrame(data=1, columns=['a','b'], index=[1,2,3])
a b
1 1 1
2 1 1
3 1 1
Run Code Online (Sandbox Code Playgroud)
我想在单个单元格上设置缺失值,当我尝试时:
df.at[1,'a'] = np.nan
Run Code Online (Sandbox Code Playgroud)
然后我得到这个例外:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "pandas/core/indexing.py", line 2159, in __setitem__
self.obj._set_value(*key, takeable=self._takeable)
File "pandas/core/frame.py", line 2582, in _set_value
engine.set_value(series._values, index, value)
File "pandas/_libs/index.pyx", line 124, in pandas._libs.index.IndexEngine.set_value
File "pandas/_libs/index.pyx", line 133, in pandas._libs.index.IndexEngine.set_value
File "pandas/_libs/index.pyx", line 570, in pandas._libs.index.convert_scalar
ValueError: Cannot assign nan to integer series
Run Code Online (Sandbox Code Playgroud) 有了一个字符串,我将能够在每个字符之间添加任何字符串(而不是在开头和结尾)。例如:
具有字符串"abcd"并添加字符串" - "应该给出以下内容result:
val s = "abcd"
val result = "a - b - c - d"
Run Code Online (Sandbox Code Playgroud)
在Scala中推荐的推荐方法是什么?
python ×9
pandas ×8
dataframe ×7
scala ×3
string ×3
excel ×2
adjustment ×1
collections ×1
combinations ×1
equality ×1
int ×1
limit ×1
matching ×1
max ×1
min ×1
missing-data ×1
natural-sort ×1
reindex ×1
tuples ×1
whitespace ×1
xlsxwriter ×1