目标
我有一个Pandas数据框,如下所示,有多列,想得到列的总数,MyColumn.
数据框 -df:
print df
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
Run Code Online (Sandbox Code Playgroud)
我的尝试:
我试图使用groupby和得到列的总和.sum():
Total = df.groupby['MyColumn'].sum()
print Total
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
TypeError: 'instancemethod' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)
预期产出
我原本预计输出如下:
319
Run Code Online (Sandbox Code Playgroud)
或者,我希望df使用包含总数的新row标题进行编辑TOTAL:
X MyColumn Y Z
0 A …Run Code Online (Sandbox Code Playgroud) 我想将API调用转换为pandas data frame.
目前,API非常无组织,我想整合pandas以便于阅读/编辑/操作.
我尝试过以下方法:
r = requests.get('http://api.football-data.org/v1/competitions/398/teams')
x = r.json()
df = pd.read_json(x)
print df
Run Code Online (Sandbox Code Playgroud)
但收到:
TypeError: Expected String or Unicode
Run Code Online (Sandbox Code Playgroud) 我正在尝试从已添加到“资产”文件夹的 GeoJSON 文件中向地图添加标记。
我试图遵循文档但是无法获得预期的结果,因为在运行应用程序时找不到标记。
我的尝试:
public void onMapReady(@NonNull final MapboxMap mapboxMap) {
this.mapboxMap = mapboxMap;
mapboxMap.setStyle(Style.MAPBOX_STREETS,
new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
enableLocationComponent(style);
GeoJsonSource source = null;
try {
source = new GeoJsonSource("geojson-source", new URI("asset://markerdata.geojson"));
} catch (URISyntaxException e) {
e.printStackTrace();
}
style.addSource(source);
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
style.addImage("marker", icon);
SymbolLayer symbolLayer = new SymbolLayer("layer-id", "source-id"); // ?
symbolLayer.setProperties(PropertyFactory.iconImage("marker"));
style.addLayer(symbolLayer);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我注意到SymbolLayer期望 alayer-id并且source-id无法理解这些是什么。
我想在每次运行程序时使用不同的API密钥进行数据抓取.
例如,我有以下2个键:
apiKey1 = "123abc"
apiKey2 = "345def"
Run Code Online (Sandbox Code Playgroud)
和以下网址:
myUrl = http://myurl.com/key=...
Run Code Online (Sandbox Code Playgroud)
程序运行时,我想myUrl使用apiKey1.一旦它再次运行,我会喜欢它使用apiKey2等等...即:
第一次运行:
url = "http://myurl.com/key=" + apiKey1
Run Code Online (Sandbox Code Playgroud)
第二轮:
url = "http://myurl.com/key=" + apiKey2
Run Code Online (Sandbox Code Playgroud)
对不起,如果这没有意义,但有没有人知道这样做的方法?我不知道.
编辑:
为了避免混淆,我已经看过这个答案了.但这不符合我的疑问.我的目标是在我的脚本执行之间循环变量.
正则表达式
y = [X: $1.19] [Y: $5.29] [Z 999/1000]
x = re.findall(r"\$[^ ]+", y)
Run Code Online (Sandbox Code Playgroud)
火柴
$1.19]
$5.29]
Run Code Online (Sandbox Code Playgroud)
预期比赛
$1.19
$5.29
Run Code Online (Sandbox Code Playgroud)
如何调整我的正则表达式以匹配可能包含小数的金额,并且必须包含美元符号? - 这些值可以改变.例如:
$x.xx # 'x' representing a number
Run Code Online (Sandbox Code Playgroud) 码:
import random
x = ['A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','Q','R',
'S','T','U','V','W','X',
'Y','Z']
y1 = random.sample(x, 2)
y2 = random.sample(x, 2)
y3 = random.sample(x, 2)
y4 = random.sample(x, 2)
y5 = random.sample(x, 2)
Run Code Online (Sandbox Code Playgroud)
询问
如上所示,我选择5个随机样本组合,并在变量下声明它们y'x'。
为了改善我的代码,我想这样做,但是要确保列表中的项目在所有变量输出中出现的次数都不会超过一次,在这些变量输出中,所有组合都是不同且非重复的。我最好实现此目的而不必从列表中删除项目,因为它稍后会在代码中重用。
预期输出(示例):
>>> y1
['A', 'Q']
>>> y2
['E', 'K']
>>> y3
['C', 'O']
>>> y4
['Z', 'X']
>>> y5
['P', 'L']
Run Code Online (Sandbox Code Playgroud) 我有两个列表,我试图在创造所有可能的乘法结果的矩阵dataframe使用pandas.
列表:
>>> L1
[8, 1, 4, 2, 7, 5]
>>> L2
[5, 3, 9, 1, 2, 6]
Run Code Online (Sandbox Code Playgroud)
我将每个项目L1与每个项目相乘L2,如下所示,以制定所有可能的结果:
>>> [[a*b] for a in L1 for b in L2]
[[40], [24], [72], [8], [16], [48], [5], [3], [9], [1], [2], [6], [20], [12], [36], [4], [8], [24], [10], [6], [18], [2], [4], [12], [35], [21], [63], [7], [14], [42], [25], [15], [45], [5], [10], [30]]
Run Code Online (Sandbox Code Playgroud)
预期产出/目标:
我的目标是现在使用pandas将这些值表示为矩阵,但我不知道从哪里开始.列表中的第一项分配了列/行名称0-5.
例如:
该 …
我想考虑使用加权随机选择一个值Pandas。
df:
0 1 2 3 4 5
0 40 5 20 10 35 25
1 24 3 12 6 21 15
2 72 9 36 18 63 45
3 8 1 4 2 7 5
4 16 2 8 4 14 10
5 48 6 24 12 42 30
Run Code Online (Sandbox Code Playgroud)
我知道使用np.random.choice,例如:
x = np.random.choice(
['0-0','0-1',etc.],
1,
p=[0.4,0.24 etc.]
)
Run Code Online (Sandbox Code Playgroud)
因此,我想以类似于np.random.choicefrom的样式/替代方法来获取输出df,但使用Pandas。与如上所述手动插入值相比,我想以一种更有效的方式进行操作。
使用np.random.choice我知道所有值都必须加起来1。我不确定如何解决这个问题,也不确定使用来基于加权随机选择一个值Pandas。
当指代输出时,如果随机选择的权重例如为40,则输出将位于0-0中,因为它位于那个中column …
我正在尝试在地图上显示两个指定点的路线,最终目标是生成逐步指示。我正在使用 MapBox 提供的 Directions API,并根据此示例构建了我的代码。
地图似乎按预期加载,并且在显示地图方面没有错误,但是指定的呼叫或地图上的任何地方都没有路线/线路存在。
我曾尝试使用不同的起点和目的地,但仍无法生成预期的结果,如提供的示例所示。
代码:
@SuppressWarnings("deprecation")
public class MainActivity extends AppCompatActivity implements
OnMapReadyCallback, PermissionsListener, View.OnClickListener, MapboxMap.OnMapClickListener, MapboxMap.OnMarkerClickListener {
private MapView mapView;
private MapboxMap mapboxMap;
private static final String TAG = "MainActivity";
private MapboxDirections client;
private DirectionsRoute currentRoute;
private static final String ROUTE_LAYER_ID = "route-layer-id";
private static final String ROUTE_SOURCE_ID = "route-source-id";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Mapbox access token is configured here.
Mapbox.getInstance(this, getString(R.string.mapbox_access_token));
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.mapView); …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个myList除了的示例i_.
我的尝试:
i_ = 'd'
myList = ['a','b','c','d','e']
myList = random.sample(myList, 3)
Run Code Online (Sandbox Code Playgroud)
虽然上面的示例工作正常,但仍有机会i_被删除myList.
我想创建一个没有i_被删除值的样本.
期望的输出:
包含3个项目的任何列表输出,包括i_:
['a','d','e']
Run Code Online (Sandbox Code Playgroud)