我有以下 numpy 数组:
import numpy as np
pair_array = np.array([(205, 254), (205, 382), (254, 382), (18, 69), (205, 382),
(31, 183), (31, 267), (31, 382), (183, 267), (183, 382)])
print(pair_array)
#[[205 254]
# [205 382]
# [254 382]
# [ 18 69]
# [205 382]
# [ 31 183]
# [ 31 267]
# [ 31 382]
# [183 267]
# [183 382]]
Run Code Online (Sandbox Code Playgroud)
有没有办法将此数组转换为包含所有可能组合的出现次数的对称熊猫数据框?我期待这样的事情:
# 18 31 69 183 205 254 267 382
# 18 0 0 1 0 0 …Run Code Online (Sandbox Code Playgroud) 如何修改此列表以使所有列表p's出现在开头,q's结尾处,以及它们之间的值按字母顺序排序?
l = ['f','g','p','a','p','c','b','q','z','n','d','t','q']
Run Code Online (Sandbox Code Playgroud)
所以我想:
['p','p','a','b','c','d','f','g','n','t','z','q','q']
Run Code Online (Sandbox Code Playgroud) 我有以下两个玩具序列
d1 = {
'a': [2,4,5,6,8,10],
'b': [1,2,5,6,9,12],
'c': [0,4,5,8,10,21]
}
d2 = {
'a': [12,15],
'b': [14,16],
'c': [23,35]
}
Run Code Online (Sandbox Code Playgroud)
我想得到一个独特的字典,我在第一个字典值之后堆叠第二个字典值,在同一个方括号内.
我尝试了以下代码
d_comb = {key:[d1[key], d2[key]] for key in d1}
Run Code Online (Sandbox Code Playgroud)
但是我获得的输出在每个键的列表中有两个列表,即
{'a': [[2, 4, 5, 6, 8, 10], [12, 15]],
'b': [[1, 2, 5, 6, 9, 12], [14, 16]],
'c': [[0, 4, 5, 8, 10, 21], [23, 35]]}
Run Code Online (Sandbox Code Playgroud)
而我想获得
{'a': [2, 4, 5, 6, 8, 10, 12, 15],
'b': [1, 2, 5, 6, 9, 12, 14, 16],
'c': [0, …Run Code Online (Sandbox Code Playgroud) 我有一个这样的 df:
frame = pd.DataFrame({'a' : ['a,b,c', 'a,c,f', 'b,d,f','a,z,c']})
Run Code Online (Sandbox Code Playgroud)
以及项目清单:
letters = ['a','c']
Run Code Online (Sandbox Code Playgroud)
我的目标是从中获取frame至少包含 2 个元素的所有行letters
我想出了这个解决方案:
for i in letters:
subframe = frame[frame['a'].str.contains(i)]
Run Code Online (Sandbox Code Playgroud)
这给了我想要的东西,但它可能不是可扩展性方面的最佳解决方案。有没有“矢量化”的解决方案?谢谢
我有两个pandas数据框,a并且b:
a1 a2 a3 a4 a5 a6 a7
1 3 4 5 3 4 5
0 2 0 3 0 2 1
2 5 6 5 2 1 2
Run Code Online (Sandbox Code Playgroud)
和
b1 b2 b3 b4 b5 b6 b7
3 5 4 5 1 4 3
0 1 2 3 0 0 2
2 2 1 5 2 6 5
Run Code Online (Sandbox Code Playgroud)
这两个数据框包含完全相同的数据,但顺序不同,列名也不同。根据两个数据框中的数字,我希望能够a将每个列名与b.
这并不像简单地将 的第一行a与第一行进行比较那么容易,b因为存在重复的值,例如两者a4和a7都有值,5 …
我有一个2D numpy数组,看起来像
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., …Run Code Online (Sandbox Code Playgroud) 我正在尝试对列表字典中的值进行排序,并从中创建一个新列表。数据如下:
{
'fbi': [229, 421, 586, 654, 947, 955, 1095, 1294, 1467, 2423, 3063, 3478, 3617, 3730, 3848, 3959, 4018, 4136, 4297, 4435, 4635, 4679, 4738, 5116, 5211, 5330, 5698, 6107, 6792, 6906, 7036],
'comey': [605, 756, 1388, 1439, 1593, 1810, 1959, 2123, 2506, 3037, 6848],
'hillary': [14, 181, 449, 614, 704, 1079, 1250, 2484, 2534, 2659, 3233, 3374, 3488, 3565, 4076, 4756, 4865, 6125, 7109]
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试的是在其中找到20个最小值,并获取其对应键的列表。例如,前三个最小值是14(希拉里),181(希拉里)和229(fbi)。因此,如何获得这样的列表:
{
'fbi': [229, 421, 586, 654, 947, 955, 1095, 1294, 1467, 2423, …Run Code Online (Sandbox Code Playgroud) 我的清单有
a = [1,2,3,4,2,7,3,5,6,7]
b = [1,2,3,1,2,5,6,2,6,7]
Run Code Online (Sandbox Code Playgroud)
我需要数一下a[i]==b[i]。
对于以上示例,答案应为
6
Run Code Online (Sandbox Code Playgroud)
答案的详细说明是
a[0]==b[0] (1==1)
a[1]==b[1] (2==2)
a[2]==b[0] (3==3)
a[4]==b[4] (2==2)
a[8]==b[8] (6==6)
a[9]==b[9] (7==7)
Run Code Online (Sandbox Code Playgroud) 我有一个巨大的数据框,其中包含许多列,其中许多列都是type的datetime.datetime。问题在于,许多还具有混合类型,包括例如datetime.datetime值和None值(以及可能的其他无效值):
0 2017-07-06 00:00:00
1 2018-02-27 21:30:05
2 2017-04-12 00:00:00
3 2017-05-21 22:05:00
4 2018-01-22 00:00:00
...
352867 2019-10-04 00:00:00
352868 None
352869 some_string
Name: colx, Length: 352872, dtype: object
Run Code Online (Sandbox Code Playgroud)
因此导致object类型列。这可以用解决df.colx.fillna(pd.NaT)。问题在于数据框太大,无法搜索单个列。
另一种方法是使用pd.to_datetime(col, errors='coerce'),但是这将强制转换为datetime包含数值的许多列。
我也可以做df.fillna(float('nan'), inplace=True),尽管包含日期的列仍然是object类型,并且仍然会有相同的问题。
我可以采用哪种方法将那些其值确实包含datetime值但也可能包含None,以及可能包含一些无效值的列转换为日期时间(提及,否则pd.to_datetime在try/ except子句中使用a即可)?像是弹性版本pd.to_datetime(col)
我有一个包含字符串和整数的列表,想要找到整数的最小值,没有列表切片.有解决方法吗?
arr = [5,3,6,"-",3,"-",4,"-"]
for i in range(len(set(arr))):
cut = min(arr)
Run Code Online (Sandbox Code Playgroud)
非常感谢!
python ×10
list ×5
pandas ×4
python-3.x ×3
dictionary ×2
numpy ×2
arrays ×1
bounding-box ×1
networkx ×1
sorting ×1
string ×1